mt-libuv 4.1.0 → 4.1.03
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -4
- data/ext/Rakefile +1 -1
- data/ext/gyp/.gitignore +1 -0
- data/ext/gyp/AUTHORS +17 -0
- data/ext/gyp/DEPS +23 -0
- data/ext/gyp/LICENSE +27 -0
- data/ext/gyp/OWNERS +1 -0
- data/ext/gyp/PRESUBMIT.py +125 -0
- data/ext/gyp/README.md +5 -0
- data/ext/gyp/buildbot/buildbot_run.py +138 -0
- data/ext/gyp/buildbot/commit_queue/OWNERS +6 -0
- data/ext/gyp/buildbot/commit_queue/README +3 -0
- data/ext/gyp/buildbot/commit_queue/cq_config.json +15 -0
- data/ext/gyp/buildbot/travis-checkout.sh +27 -0
- data/ext/gyp/buildbot/travis-test.sh +12 -0
- data/ext/gyp/codereview.settings +6 -0
- data/ext/gyp/data/win/large-pdb-shim.cc +12 -0
- data/ext/gyp/gyp +8 -0
- data/ext/gyp/gyp.bat +5 -0
- data/ext/gyp/gyp_main.py +16 -0
- data/ext/gyp/gyptest.py +243 -0
- data/ext/gyp/pylib/gyp/MSVSNew.py +353 -0
- data/ext/gyp/pylib/gyp/MSVSProject.py +208 -0
- data/ext/gyp/pylib/gyp/MSVSSettings.py +1106 -0
- data/ext/gyp/pylib/gyp/MSVSSettings_test.py +1486 -0
- data/ext/gyp/pylib/gyp/MSVSToolFile.py +58 -0
- data/ext/gyp/pylib/gyp/MSVSUserFile.py +147 -0
- data/ext/gyp/pylib/gyp/MSVSUtil.py +271 -0
- data/ext/gyp/pylib/gyp/MSVSVersion.py +504 -0
- data/ext/gyp/pylib/gyp/__init__.py +555 -0
- data/ext/gyp/pylib/gyp/common.py +619 -0
- data/ext/gyp/pylib/gyp/common_test.py +73 -0
- data/ext/gyp/pylib/gyp/easy_xml.py +170 -0
- data/ext/gyp/pylib/gyp/easy_xml_test.py +106 -0
- data/ext/gyp/pylib/gyp/flock_tool.py +54 -0
- data/ext/gyp/pylib/gyp/generator/__init__.py +0 -0
- data/ext/gyp/pylib/gyp/generator/analyzer.py +744 -0
- data/ext/gyp/pylib/gyp/generator/cmake.py +1256 -0
- data/ext/gyp/pylib/gyp/generator/dump_dependency_json.py +101 -0
- data/ext/gyp/pylib/gyp/generator/eclipse.py +425 -0
- data/ext/gyp/pylib/gyp/generator/gypd.py +94 -0
- data/ext/gyp/pylib/gyp/generator/gypsh.py +56 -0
- data/ext/gyp/pylib/gyp/generator/make.py +2260 -0
- data/ext/gyp/pylib/gyp/generator/msvs.py +3537 -0
- data/ext/gyp/pylib/gyp/generator/msvs_test.py +40 -0
- data/ext/gyp/pylib/gyp/generator/ninja.py +2500 -0
- data/ext/gyp/pylib/gyp/generator/ninja_test.py +46 -0
- data/ext/gyp/pylib/gyp/generator/xcode.py +1302 -0
- data/ext/gyp/pylib/gyp/generator/xcode_test.py +23 -0
- data/ext/gyp/pylib/gyp/input.py +2908 -0
- data/ext/gyp/pylib/gyp/input_test.py +90 -0
- data/ext/gyp/pylib/gyp/mac_tool.py +721 -0
- data/ext/gyp/pylib/gyp/msvs_emulation.py +1112 -0
- data/ext/gyp/pylib/gyp/ninja_syntax.py +168 -0
- data/ext/gyp/pylib/gyp/simple_copy.py +57 -0
- data/ext/gyp/pylib/gyp/win_tool.py +326 -0
- data/ext/gyp/pylib/gyp/xcode_emulation.py +1800 -0
- data/ext/gyp/pylib/gyp/xcode_ninja.py +289 -0
- data/ext/gyp/pylib/gyp/xcodeproj_file.py +2995 -0
- data/ext/gyp/pylib/gyp/xml_fix.py +68 -0
- data/ext/gyp/samples/samples +83 -0
- data/ext/gyp/samples/samples.bat +5 -0
- data/ext/gyp/setup.py +19 -0
- data/ext/gyp/test/actions/generated-header/action.py +11 -0
- data/ext/gyp/test/actions/generated-header/main.cc +7 -0
- data/ext/gyp/test/actions/generated-header/test.gyp +34 -0
- data/ext/gyp/test/actions/gyptest-all.py +101 -0
- data/ext/gyp/test/actions/gyptest-default.py +68 -0
- data/ext/gyp/test/actions/gyptest-errors.py +24 -0
- data/ext/gyp/test/actions/gyptest-generated-header.py +38 -0
- data/ext/gyp/test/actions/src/action_missing_name.gyp +24 -0
- data/ext/gyp/test/actions/src/actions.gyp +114 -0
- data/ext/gyp/test/actions/src/confirm-dep-files.py +21 -0
- data/ext/gyp/test/actions/src/subdir1/counter.py +44 -0
- data/ext/gyp/test/actions/src/subdir1/executable.gyp +74 -0
- data/ext/gyp/test/actions/src/subdir1/make-prog1.py +20 -0
- data/ext/gyp/test/actions/src/subdir1/make-prog2.py +20 -0
- data/ext/gyp/test/actions/src/subdir1/program.c +12 -0
- data/ext/gyp/test/actions/src/subdir2/make-file.py +11 -0
- data/ext/gyp/test/actions/src/subdir2/none.gyp +33 -0
- data/ext/gyp/test/actions/src/subdir3/generate_main.py +21 -0
- data/ext/gyp/test/actions/src/subdir3/null_input.gyp +29 -0
- data/ext/gyp/test/actions-bare/gyptest-bare.py +24 -0
- data/ext/gyp/test/actions-bare/src/bare.gyp +25 -0
- data/ext/gyp/test/actions-bare/src/bare.py +11 -0
- data/ext/gyp/test/actions-depfile/depfile.gyp +42 -0
- data/ext/gyp/test/actions-depfile/gyptest-all.py +30 -0
- data/ext/gyp/test/actions-depfile/input.txt +1 -0
- data/ext/gyp/test/actions-depfile/touch.py +18 -0
- data/ext/gyp/test/actions-multiple/gyptest-all.py +72 -0
- data/ext/gyp/test/actions-multiple/src/actions.gyp +226 -0
- data/ext/gyp/test/actions-multiple/src/copyfile.py +9 -0
- data/ext/gyp/test/actions-multiple/src/filter.py +12 -0
- data/ext/gyp/test/actions-multiple/src/foo.c +11 -0
- data/ext/gyp/test/actions-multiple/src/input.txt +1 -0
- data/ext/gyp/test/actions-multiple/src/main.c +22 -0
- data/ext/gyp/test/actions-multiple-outputs/gyptest-multiple-outputs.py +45 -0
- data/ext/gyp/test/actions-multiple-outputs/src/multiple-outputs.gyp +23 -0
- data/ext/gyp/test/actions-multiple-outputs/src/touch.py +16 -0
- data/ext/gyp/test/actions-multiple-outputs-with-dependencies/gyptest-action.py +45 -0
- data/ext/gyp/test/actions-multiple-outputs-with-dependencies/src/action.gyp +28 -0
- data/ext/gyp/test/actions-multiple-outputs-with-dependencies/src/rcopy.py +20 -0
- data/ext/gyp/test/actions-none/gyptest-none.py +24 -0
- data/ext/gyp/test/actions-none/src/fake_cross.py +12 -0
- data/ext/gyp/test/actions-none/src/foo.cc +1 -0
- data/ext/gyp/test/actions-none/src/none_with_source_files.gyp +35 -0
- data/ext/gyp/test/actions-subdir/gyptest-action.py +26 -0
- data/ext/gyp/test/actions-subdir/src/make-file.py +11 -0
- data/ext/gyp/test/actions-subdir/src/none.gyp +31 -0
- data/ext/gyp/test/actions-subdir/src/subdir/make-subdir-file.py +11 -0
- data/ext/gyp/test/actions-subdir/src/subdir/subdir.gyp +28 -0
- data/ext/gyp/test/additional-targets/gyptest-additional.py +63 -0
- data/ext/gyp/test/additional-targets/src/all.gyp +13 -0
- data/ext/gyp/test/additional-targets/src/dir1/actions.gyp +56 -0
- data/ext/gyp/test/additional-targets/src/dir1/emit.py +11 -0
- data/ext/gyp/test/additional-targets/src/dir1/lib1.c +6 -0
- data/ext/gyp/test/analyzer/common.gypi +6 -0
- data/ext/gyp/test/analyzer/gyptest-analyzer.py +427 -0
- data/ext/gyp/test/analyzer/static_library_test.gyp +34 -0
- data/ext/gyp/test/analyzer/subdir/subdir.gyp +36 -0
- data/ext/gyp/test/analyzer/subdir/subdir2/subdir2.gyp +15 -0
- data/ext/gyp/test/analyzer/subdir2/subdir.gyp +18 -0
- data/ext/gyp/test/analyzer/subdir2/subdir.includes.gypi +9 -0
- data/ext/gyp/test/analyzer/test.gyp +114 -0
- data/ext/gyp/test/analyzer/test2.gyp +25 -0
- data/ext/gyp/test/analyzer/test2.includes.gypi +13 -0
- data/ext/gyp/test/analyzer/test2.includes.includes.gypi +9 -0
- data/ext/gyp/test/analyzer/test2.toplevel_includes.gypi +15 -0
- data/ext/gyp/test/analyzer/test3.gyp +77 -0
- data/ext/gyp/test/analyzer/test4.gyp +80 -0
- data/ext/gyp/test/analyzer/test5.gyp +25 -0
- data/ext/gyp/test/arflags/gyptest-arflags.py +26 -0
- data/ext/gyp/test/arflags/lib.cc +0 -0
- data/ext/gyp/test/arflags/test.gyp +10 -0
- data/ext/gyp/test/assembly/gyptest-assembly.py +31 -0
- data/ext/gyp/test/assembly/gyptest-override.py +24 -0
- data/ext/gyp/test/assembly/src/as.bat +4 -0
- data/ext/gyp/test/assembly/src/assembly.gyp +62 -0
- data/ext/gyp/test/assembly/src/lib1.S +15 -0
- data/ext/gyp/test/assembly/src/lib1.c +3 -0
- data/ext/gyp/test/assembly/src/override.gyp +34 -0
- data/ext/gyp/test/assembly/src/override_asm.asm +8 -0
- data/ext/gyp/test/assembly/src/program.c +12 -0
- data/ext/gyp/test/build-option/gyptest-build.py +27 -0
- data/ext/gyp/test/build-option/hello.c +13 -0
- data/ext/gyp/test/build-option/hello.gyp +15 -0
- data/ext/gyp/test/builddir/gyptest-all.py +85 -0
- data/ext/gyp/test/builddir/gyptest-default.py +85 -0
- data/ext/gyp/test/builddir/src/builddir.gypi +18 -0
- data/ext/gyp/test/builddir/src/func1.c +6 -0
- data/ext/gyp/test/builddir/src/func2.c +6 -0
- data/ext/gyp/test/builddir/src/func3.c +6 -0
- data/ext/gyp/test/builddir/src/func4.c +6 -0
- data/ext/gyp/test/builddir/src/func5.c +6 -0
- data/ext/gyp/test/builddir/src/prog1.c +10 -0
- data/ext/gyp/test/builddir/src/prog1.gyp +30 -0
- data/ext/gyp/test/builddir/src/subdir2/prog2.c +10 -0
- data/ext/gyp/test/builddir/src/subdir2/prog2.gyp +19 -0
- data/ext/gyp/test/builddir/src/subdir2/subdir3/prog3.c +10 -0
- data/ext/gyp/test/builddir/src/subdir2/subdir3/prog3.gyp +19 -0
- data/ext/gyp/test/builddir/src/subdir2/subdir3/subdir4/prog4.c +10 -0
- data/ext/gyp/test/builddir/src/subdir2/subdir3/subdir4/prog4.gyp +19 -0
- data/ext/gyp/test/builddir/src/subdir2/subdir3/subdir4/subdir5/prog5.c +10 -0
- data/ext/gyp/test/builddir/src/subdir2/subdir3/subdir4/subdir5/prog5.gyp +19 -0
- data/ext/gyp/test/cflags/cflags.c +15 -0
- data/ext/gyp/test/cflags/cflags.gyp +23 -0
- data/ext/gyp/test/cflags/gyptest-cflags.py +75 -0
- data/ext/gyp/test/compilable/gyptest-headers.py +29 -0
- data/ext/gyp/test/compilable/src/headers.gyp +26 -0
- data/ext/gyp/test/compilable/src/lib1.cpp +7 -0
- data/ext/gyp/test/compilable/src/lib1.hpp +6 -0
- data/ext/gyp/test/compilable/src/program.cpp +9 -0
- data/ext/gyp/test/compiler-override/compiler-exe.gyp +16 -0
- data/ext/gyp/test/compiler-override/compiler-global-settings.gyp.in +34 -0
- data/ext/gyp/test/compiler-override/compiler-host.gyp +17 -0
- data/ext/gyp/test/compiler-override/compiler-shared-lib.gyp +16 -0
- data/ext/gyp/test/compiler-override/cxxtest.cc +7 -0
- data/ext/gyp/test/compiler-override/gyptest-compiler-env-toolchain.py +78 -0
- data/ext/gyp/test/compiler-override/gyptest-compiler-env.py +110 -0
- data/ext/gyp/test/compiler-override/gyptest-compiler-global-settings.py +82 -0
- data/ext/gyp/test/compiler-override/my_cc.py +7 -0
- data/ext/gyp/test/compiler-override/my_cxx.py +7 -0
- data/ext/gyp/test/compiler-override/my_ld.py +7 -0
- data/ext/gyp/test/compiler-override/my_nm.py +9 -0
- data/ext/gyp/test/compiler-override/my_readelf.py +9 -0
- data/ext/gyp/test/compiler-override/test.c +7 -0
- data/ext/gyp/test/conditions/elseif/elseif.gyp +43 -0
- data/ext/gyp/test/conditions/elseif/elseif_bad1.gyp +20 -0
- data/ext/gyp/test/conditions/elseif/elseif_bad2.gyp +22 -0
- data/ext/gyp/test/conditions/elseif/elseif_bad3.gyp +23 -0
- data/ext/gyp/test/conditions/elseif/elseif_conditions.gypi +15 -0
- data/ext/gyp/test/conditions/elseif/gyptest_elseif.py +33 -0
- data/ext/gyp/test/conditions/elseif/program.cc +10 -0
- data/ext/gyp/test/configurations/basics/configurations.c +15 -0
- data/ext/gyp/test/configurations/basics/configurations.gyp +32 -0
- data/ext/gyp/test/configurations/basics/gyptest-configurations.py +29 -0
- data/ext/gyp/test/configurations/inheritance/configurations.c +21 -0
- data/ext/gyp/test/configurations/inheritance/configurations.gyp +40 -0
- data/ext/gyp/test/configurations/inheritance/duplicates.gyp +27 -0
- data/ext/gyp/test/configurations/inheritance/duplicates.gypd.golden +12 -0
- data/ext/gyp/test/configurations/inheritance/gyptest-duplicates.py +36 -0
- data/ext/gyp/test/configurations/inheritance/gyptest-inheritance.py +33 -0
- data/ext/gyp/test/configurations/invalid/actions.gyp +18 -0
- data/ext/gyp/test/configurations/invalid/all_dependent_settings.gyp +18 -0
- data/ext/gyp/test/configurations/invalid/configurations.gyp +18 -0
- data/ext/gyp/test/configurations/invalid/dependencies.gyp +18 -0
- data/ext/gyp/test/configurations/invalid/direct_dependent_settings.gyp +18 -0
- data/ext/gyp/test/configurations/invalid/gyptest-configurations.py +36 -0
- data/ext/gyp/test/configurations/invalid/libraries.gyp +18 -0
- data/ext/gyp/test/configurations/invalid/link_settings.gyp +18 -0
- data/ext/gyp/test/configurations/invalid/sources.gyp +18 -0
- data/ext/gyp/test/configurations/invalid/standalone_static_library.gyp +17 -0
- data/ext/gyp/test/configurations/invalid/target_name.gyp +18 -0
- data/ext/gyp/test/configurations/invalid/type.gyp +18 -0
- data/ext/gyp/test/configurations/target_platform/configurations.gyp +58 -0
- data/ext/gyp/test/configurations/target_platform/front.c +8 -0
- data/ext/gyp/test/configurations/target_platform/gyptest-target_platform.py +40 -0
- data/ext/gyp/test/configurations/target_platform/left.c +3 -0
- data/ext/gyp/test/configurations/target_platform/right.c +3 -0
- data/ext/gyp/test/configurations/x64/configurations.c +12 -0
- data/ext/gyp/test/configurations/x64/configurations.gyp +38 -0
- data/ext/gyp/test/configurations/x64/gyptest-x86.py +31 -0
- data/ext/gyp/test/copies/gyptest-all.py +42 -0
- data/ext/gyp/test/copies/gyptest-attribs.py +41 -0
- data/ext/gyp/test/copies/gyptest-default.py +42 -0
- data/ext/gyp/test/copies/gyptest-samedir.py +28 -0
- data/ext/gyp/test/copies/gyptest-slash.py +39 -0
- data/ext/gyp/test/copies/gyptest-sourceless-shared-lib.py +20 -0
- data/ext/gyp/test/copies/gyptest-updir.py +32 -0
- data/ext/gyp/test/copies/src/copies-attribs.gyp +20 -0
- data/ext/gyp/test/copies/src/copies-samedir.gyp +37 -0
- data/ext/gyp/test/copies/src/copies-slash.gyp +36 -0
- data/ext/gyp/test/copies/src/copies-sourceless-shared-lib.gyp +27 -0
- data/ext/gyp/test/copies/src/copies-updir.gyp +21 -0
- data/ext/gyp/test/copies/src/copies.gyp +70 -0
- data/ext/gyp/test/copies/src/directory/file3 +1 -0
- data/ext/gyp/test/copies/src/directory/file4 +1 -0
- data/ext/gyp/test/copies/src/directory/subdir/file5 +1 -0
- data/ext/gyp/test/copies/src/executable-file.sh +3 -0
- data/ext/gyp/test/copies/src/file1 +1 -0
- data/ext/gyp/test/copies/src/file2 +1 -0
- data/ext/gyp/test/copies/src/foo.c +13 -0
- data/ext/gyp/test/copies/src/parentdir/subdir/file6 +1 -0
- data/ext/gyp/test/custom-generator/gyptest-custom-generator.py +18 -0
- data/ext/gyp/test/custom-generator/mygenerator.py +14 -0
- data/ext/gyp/test/custom-generator/test.gyp +15 -0
- data/ext/gyp/test/cxxflags/cxxflags.cc +15 -0
- data/ext/gyp/test/cxxflags/cxxflags.gyp +15 -0
- data/ext/gyp/test/cxxflags/gyptest-cxxflags.py +45 -0
- data/ext/gyp/test/defines/defines-env.gyp +22 -0
- data/ext/gyp/test/defines/defines.c +23 -0
- data/ext/gyp/test/defines/defines.gyp +38 -0
- data/ext/gyp/test/defines/gyptest-define-override.py +43 -0
- data/ext/gyp/test/defines/gyptest-defines-env-regyp.py +51 -0
- data/ext/gyp/test/defines/gyptest-defines-env.py +85 -0
- data/ext/gyp/test/defines/gyptest-defines.py +39 -0
- data/ext/gyp/test/defines-escaping/defines-escaping.c +11 -0
- data/ext/gyp/test/defines-escaping/defines-escaping.gyp +19 -0
- data/ext/gyp/test/defines-escaping/gyptest-defines-escaping.py +184 -0
- data/ext/gyp/test/dependencies/a.c +9 -0
- data/ext/gyp/test/dependencies/adso/all_dependent_settings_order.gyp +45 -0
- data/ext/gyp/test/dependencies/adso/write_args.py +11 -0
- data/ext/gyp/test/dependencies/b/b.c +3 -0
- data/ext/gyp/test/dependencies/b/b.gyp +22 -0
- data/ext/gyp/test/dependencies/b/b3.c +9 -0
- data/ext/gyp/test/dependencies/c/c.c +4 -0
- data/ext/gyp/test/dependencies/c/c.gyp +22 -0
- data/ext/gyp/test/dependencies/c/d.c +3 -0
- data/ext/gyp/test/dependencies/double_dependency.gyp +23 -0
- data/ext/gyp/test/dependencies/double_dependent.gyp +12 -0
- data/ext/gyp/test/dependencies/extra_targets.gyp +18 -0
- data/ext/gyp/test/dependencies/gyptest-all-dependent-settings-order.py +19 -0
- data/ext/gyp/test/dependencies/gyptest-double-dependency.py +19 -0
- data/ext/gyp/test/dependencies/gyptest-extra-targets.py +22 -0
- data/ext/gyp/test/dependencies/gyptest-indirect-module-dependency.py +22 -0
- data/ext/gyp/test/dependencies/gyptest-lib-only.py +39 -0
- data/ext/gyp/test/dependencies/gyptest-none-traversal.py +25 -0
- data/ext/gyp/test/dependencies/gyptest-sharedlib-linksettings.py +21 -0
- data/ext/gyp/test/dependencies/lib_only.gyp +16 -0
- data/ext/gyp/test/dependencies/main.c +14 -0
- data/ext/gyp/test/dependencies/module-dep/a.cc +7 -0
- data/ext/gyp/test/dependencies/module-dep/dll.cc +9 -0
- data/ext/gyp/test/dependencies/module-dep/exe.cc +7 -0
- data/ext/gyp/test/dependencies/module-dep/indirect-module-dependency.gyp +37 -0
- data/ext/gyp/test/dependencies/none_traversal.gyp +46 -0
- data/ext/gyp/test/dependencies/sharedlib-linksettings/program.c +25 -0
- data/ext/gyp/test/dependencies/sharedlib-linksettings/sharedlib.c +16 -0
- data/ext/gyp/test/dependencies/sharedlib-linksettings/staticlib.c +24 -0
- data/ext/gyp/test/dependencies/sharedlib-linksettings/test.gyp +37 -0
- data/ext/gyp/test/dependency-copy/gyptest-copy.py +26 -0
- data/ext/gyp/test/dependency-copy/src/copies.gyp +25 -0
- data/ext/gyp/test/dependency-copy/src/file1.c +7 -0
- data/ext/gyp/test/dependency-copy/src/file2.c +7 -0
- data/ext/gyp/test/dependent-settings/nested-dependent-settings/all-dependent-settings.gyp +19 -0
- data/ext/gyp/test/dependent-settings/nested-dependent-settings/direct-dependent-settings.gyp +19 -0
- data/ext/gyp/test/dependent-settings/nested-dependent-settings/gyptest-nested-dependent-settings.py +18 -0
- data/ext/gyp/test/determinism/determinism.gyp +59 -0
- data/ext/gyp/test/determinism/empty-targets.gyp +32 -0
- data/ext/gyp/test/determinism/gyptest-determinism.py +30 -0
- data/ext/gyp/test/determinism/gyptest-empty-target-names.py +30 -0
- data/ext/gyp/test/determinism/gyptest-needed-variables.py +30 -0
- data/ext/gyp/test/determinism/gyptest-solibs.py +37 -0
- data/ext/gyp/test/determinism/main.cc +5 -0
- data/ext/gyp/test/determinism/needed-variables.gyp +33 -0
- data/ext/gyp/test/determinism/rule.py +8 -0
- data/ext/gyp/test/determinism/solib.cc +8 -0
- data/ext/gyp/test/determinism/solibs.gyp +32 -0
- data/ext/gyp/test/empty-target/empty-target.gyp +12 -0
- data/ext/gyp/test/empty-target/gyptest-empty-target.py +18 -0
- data/ext/gyp/test/errors/dependency_cycle.gyp +23 -0
- data/ext/gyp/test/errors/duplicate_basenames.gyp +13 -0
- data/ext/gyp/test/errors/duplicate_node.gyp +12 -0
- data/ext/gyp/test/errors/duplicate_rule.gyp +22 -0
- data/ext/gyp/test/errors/duplicate_targets.gyp +14 -0
- data/ext/gyp/test/errors/error_command.gyp +12 -0
- data/ext/gyp/test/errors/file_cycle0.gyp +17 -0
- data/ext/gyp/test/errors/file_cycle1.gyp +13 -0
- data/ext/gyp/test/errors/gyptest-errors.py +80 -0
- data/ext/gyp/test/errors/missing_command.gyp +12 -0
- data/ext/gyp/test/errors/missing_dep.gyp +15 -0
- data/ext/gyp/test/errors/missing_targets.gyp +8 -0
- data/ext/gyp/test/escaping/colon/test.gyp +21 -0
- data/ext/gyp/test/escaping/gyptest-colon.py +51 -0
- data/ext/gyp/test/exclusion/exclusion.gyp +23 -0
- data/ext/gyp/test/exclusion/gyptest-exclusion.py +22 -0
- data/ext/gyp/test/exclusion/hello.c +15 -0
- data/ext/gyp/test/external-cross-compile/gyptest-cross.py +31 -0
- data/ext/gyp/test/external-cross-compile/src/bogus1.cc +1 -0
- data/ext/gyp/test/external-cross-compile/src/bogus2.c +1 -0
- data/ext/gyp/test/external-cross-compile/src/cross.gyp +83 -0
- data/ext/gyp/test/external-cross-compile/src/cross_compile.gypi +23 -0
- data/ext/gyp/test/external-cross-compile/src/fake_cross.py +18 -0
- data/ext/gyp/test/external-cross-compile/src/program.cc +16 -0
- data/ext/gyp/test/external-cross-compile/src/test1.cc +1 -0
- data/ext/gyp/test/external-cross-compile/src/test2.c +1 -0
- data/ext/gyp/test/external-cross-compile/src/test3.cc +1 -0
- data/ext/gyp/test/external-cross-compile/src/test4.c +1 -0
- data/ext/gyp/test/external-cross-compile/src/tochar.py +13 -0
- data/ext/gyp/test/generator-output/actions/actions.gyp +16 -0
- data/ext/gyp/test/generator-output/actions/build/README.txt +4 -0
- data/ext/gyp/test/generator-output/actions/subdir1/actions-out/README.txt +4 -0
- data/ext/gyp/test/generator-output/actions/subdir1/build/README.txt +4 -0
- data/ext/gyp/test/generator-output/actions/subdir1/executable.gyp +44 -0
- data/ext/gyp/test/generator-output/actions/subdir1/make-prog1.py +20 -0
- data/ext/gyp/test/generator-output/actions/subdir1/make-prog2.py +20 -0
- data/ext/gyp/test/generator-output/actions/subdir1/program.c +12 -0
- data/ext/gyp/test/generator-output/actions/subdir2/actions-out/README.txt +4 -0
- data/ext/gyp/test/generator-output/actions/subdir2/build/README.txt +4 -0
- data/ext/gyp/test/generator-output/actions/subdir2/make-file.py +11 -0
- data/ext/gyp/test/generator-output/actions/subdir2/none.gyp +31 -0
- data/ext/gyp/test/generator-output/copies/build/README.txt +4 -0
- data/ext/gyp/test/generator-output/copies/copies-out/README.txt +4 -0
- data/ext/gyp/test/generator-output/copies/copies.gyp +50 -0
- data/ext/gyp/test/generator-output/copies/file1 +1 -0
- data/ext/gyp/test/generator-output/copies/file2 +1 -0
- data/ext/gyp/test/generator-output/copies/subdir/build/README.txt +4 -0
- data/ext/gyp/test/generator-output/copies/subdir/copies-out/README.txt +4 -0
- data/ext/gyp/test/generator-output/copies/subdir/file3 +1 -0
- data/ext/gyp/test/generator-output/copies/subdir/file4 +1 -0
- data/ext/gyp/test/generator-output/copies/subdir/subdir.gyp +32 -0
- data/ext/gyp/test/generator-output/gyptest-actions.py +57 -0
- data/ext/gyp/test/generator-output/gyptest-copies.py +59 -0
- data/ext/gyp/test/generator-output/gyptest-depth.py +58 -0
- data/ext/gyp/test/generator-output/gyptest-mac-bundle.py +33 -0
- data/ext/gyp/test/generator-output/gyptest-relocate.py +59 -0
- data/ext/gyp/test/generator-output/gyptest-rules.py +58 -0
- data/ext/gyp/test/generator-output/gyptest-subdir2-deep.py +36 -0
- data/ext/gyp/test/generator-output/gyptest-symlink.py +44 -0
- data/ext/gyp/test/generator-output/gyptest-top-all.py +53 -0
- data/ext/gyp/test/generator-output/mac-bundle/Info.plist +32 -0
- data/ext/gyp/test/generator-output/mac-bundle/app.order +1 -0
- data/ext/gyp/test/generator-output/mac-bundle/header.h +1 -0
- data/ext/gyp/test/generator-output/mac-bundle/main.c +1 -0
- data/ext/gyp/test/generator-output/mac-bundle/resource.sb +1 -0
- data/ext/gyp/test/generator-output/mac-bundle/test.gyp +25 -0
- data/ext/gyp/test/generator-output/rules/build/README.txt +4 -0
- data/ext/gyp/test/generator-output/rules/copy-file.py +12 -0
- data/ext/gyp/test/generator-output/rules/rules.gyp +16 -0
- data/ext/gyp/test/generator-output/rules/subdir1/build/README.txt +4 -0
- data/ext/gyp/test/generator-output/rules/subdir1/define3.in0 +1 -0
- data/ext/gyp/test/generator-output/rules/subdir1/define4.in0 +1 -0
- data/ext/gyp/test/generator-output/rules/subdir1/executable.gyp +59 -0
- data/ext/gyp/test/generator-output/rules/subdir1/function1.in1 +6 -0
- data/ext/gyp/test/generator-output/rules/subdir1/function2.in1 +6 -0
- data/ext/gyp/test/generator-output/rules/subdir1/program.c +18 -0
- data/ext/gyp/test/generator-output/rules/subdir2/build/README.txt +4 -0
- data/ext/gyp/test/generator-output/rules/subdir2/file1.in0 +1 -0
- data/ext/gyp/test/generator-output/rules/subdir2/file2.in0 +1 -0
- data/ext/gyp/test/generator-output/rules/subdir2/file3.in1 +1 -0
- data/ext/gyp/test/generator-output/rules/subdir2/file4.in1 +1 -0
- data/ext/gyp/test/generator-output/rules/subdir2/none.gyp +49 -0
- data/ext/gyp/test/generator-output/rules/subdir2/rules-out/README.txt +4 -0
- data/ext/gyp/test/generator-output/src/build/README.txt +4 -0
- data/ext/gyp/test/generator-output/src/inc.h +1 -0
- data/ext/gyp/test/generator-output/src/inc1/include1.h +1 -0
- data/ext/gyp/test/generator-output/src/prog1.c +18 -0
- data/ext/gyp/test/generator-output/src/prog1.gyp +28 -0
- data/ext/gyp/test/generator-output/src/subdir2/build/README.txt +4 -0
- data/ext/gyp/test/generator-output/src/subdir2/deeper/build/README.txt +4 -0
- data/ext/gyp/test/generator-output/src/subdir2/deeper/deeper.c +7 -0
- data/ext/gyp/test/generator-output/src/subdir2/deeper/deeper.gyp +18 -0
- data/ext/gyp/test/generator-output/src/subdir2/deeper/deeper.h +1 -0
- data/ext/gyp/test/generator-output/src/subdir2/inc2/include2.h +1 -0
- data/ext/gyp/test/generator-output/src/subdir2/prog2.c +18 -0
- data/ext/gyp/test/generator-output/src/subdir2/prog2.gyp +28 -0
- data/ext/gyp/test/generator-output/src/subdir3/build/README.txt +4 -0
- data/ext/gyp/test/generator-output/src/subdir3/inc3/include3.h +1 -0
- data/ext/gyp/test/generator-output/src/subdir3/prog3.c +18 -0
- data/ext/gyp/test/generator-output/src/subdir3/prog3.gyp +25 -0
- data/ext/gyp/test/generator-output/src/symroot.gypi +16 -0
- data/ext/gyp/test/gyp-defines/defines.gyp +26 -0
- data/ext/gyp/test/gyp-defines/echo.py +11 -0
- data/ext/gyp/test/gyp-defines/gyptest-multiple-values.py +36 -0
- data/ext/gyp/test/gyp-defines/gyptest-regyp.py +40 -0
- data/ext/gyp/test/hard_dependency/gyptest-exported-hard-dependency.py +37 -0
- data/ext/gyp/test/hard_dependency/gyptest-no-exported-hard-dependency.py +36 -0
- data/ext/gyp/test/hard_dependency/src/a.c +9 -0
- data/ext/gyp/test/hard_dependency/src/a.h +12 -0
- data/ext/gyp/test/hard_dependency/src/b.c +9 -0
- data/ext/gyp/test/hard_dependency/src/b.h +12 -0
- data/ext/gyp/test/hard_dependency/src/c.c +10 -0
- data/ext/gyp/test/hard_dependency/src/c.h +10 -0
- data/ext/gyp/test/hard_dependency/src/d.c +9 -0
- data/ext/gyp/test/hard_dependency/src/emit.py +11 -0
- data/ext/gyp/test/hard_dependency/src/hard_dependency.gyp +78 -0
- data/ext/gyp/test/hello/gyptest-all.py +24 -0
- data/ext/gyp/test/hello/gyptest-default.py +24 -0
- data/ext/gyp/test/hello/gyptest-disable-regyp.py +32 -0
- data/ext/gyp/test/hello/gyptest-regyp-output.py +36 -0
- data/ext/gyp/test/hello/gyptest-regyp.py +32 -0
- data/ext/gyp/test/hello/gyptest-target.py +24 -0
- data/ext/gyp/test/hello/hello.c +11 -0
- data/ext/gyp/test/hello/hello.gyp +15 -0
- data/ext/gyp/test/hello/hello2.c +11 -0
- data/ext/gyp/test/hello/hello2.gyp +15 -0
- data/ext/gyp/test/home_dot_gyp/gyptest-home-includes-config-arg.py +31 -0
- data/ext/gyp/test/home_dot_gyp/gyptest-home-includes-config-env.py +33 -0
- data/ext/gyp/test/home_dot_gyp/gyptest-home-includes-regyp.py +44 -0
- data/ext/gyp/test/home_dot_gyp/gyptest-home-includes.py +30 -0
- data/ext/gyp/test/home_dot_gyp/home/.gyp/include.gypi +5 -0
- data/ext/gyp/test/home_dot_gyp/home2/.gyp/include.gypi +5 -0
- data/ext/gyp/test/home_dot_gyp/home2/.gyp_new/include.gypi +5 -0
- data/ext/gyp/test/home_dot_gyp/src/all.gyp +22 -0
- data/ext/gyp/test/home_dot_gyp/src/printfoo.c +7 -0
- data/ext/gyp/test/include_dirs/gyptest-all.py +43 -0
- data/ext/gyp/test/include_dirs/gyptest-default.py +43 -0
- data/ext/gyp/test/include_dirs/src/inc.h +1 -0
- data/ext/gyp/test/include_dirs/src/inc1/include1.h +1 -0
- data/ext/gyp/test/include_dirs/src/includes.c +19 -0
- data/ext/gyp/test/include_dirs/src/includes.gyp +27 -0
- data/ext/gyp/test/include_dirs/src/shadow1/shadow.h +1 -0
- data/ext/gyp/test/include_dirs/src/shadow2/shadow.h +1 -0
- data/ext/gyp/test/include_dirs/src/subdir/inc.h +1 -0
- data/ext/gyp/test/include_dirs/src/subdir/inc2/include2.h +1 -0
- data/ext/gyp/test/include_dirs/src/subdir/subdir_includes.c +14 -0
- data/ext/gyp/test/include_dirs/src/subdir/subdir_includes.gyp +20 -0
- data/ext/gyp/test/intermediate_dir/gyptest-intermediate-dir.py +44 -0
- data/ext/gyp/test/intermediate_dir/src/script.py +22 -0
- data/ext/gyp/test/intermediate_dir/src/shared_infile.txt +1 -0
- data/ext/gyp/test/intermediate_dir/src/test.gyp +42 -0
- data/ext/gyp/test/intermediate_dir/src/test2.gyp +42 -0
- data/ext/gyp/test/ios/app-bundle/TestApp/English.lproj/InfoPlist-error.strings +3 -0
- data/ext/gyp/test/ios/app-bundle/TestApp/English.lproj/InfoPlist.strings +3 -0
- data/ext/gyp/test/ios/app-bundle/TestApp/English.lproj/LanguageMap.plist +8 -0
- data/ext/gyp/test/ios/app-bundle/TestApp/English.lproj/MainMenu.xib +17 -0
- data/ext/gyp/test/ios/app-bundle/TestApp/English.lproj/Main_iPhone.storyboard +27 -0
- data/ext/gyp/test/ios/app-bundle/TestApp/Images.xcassets/AppIcon.appiconset/Contents.json +58 -0
- data/ext/gyp/test/ios/app-bundle/TestApp/Images.xcassets/image.imageset/Contents.json +23 -0
- data/ext/gyp/test/ios/app-bundle/TestApp/Images.xcassets/image.imageset/super_sylvain.png +0 -0
- data/ext/gyp/test/ios/app-bundle/TestApp/Images.xcassets/image.imageset/super_sylvain@2x.png +0 -0
- data/ext/gyp/test/ios/app-bundle/TestApp/Images.xcassets/image.imageset/super_sylvain@3x.png +0 -0
- data/ext/gyp/test/ios/app-bundle/TestApp/TestApp-Info.plist +28 -0
- data/ext/gyp/test/ios/app-bundle/TestApp/check_no_signature.py +13 -0
- data/ext/gyp/test/ios/app-bundle/TestApp/main.m +13 -0
- data/ext/gyp/test/ios/app-bundle/TestApp/only-compile-in-32-bits.m +7 -0
- data/ext/gyp/test/ios/app-bundle/TestApp/only-compile-in-64-bits.m +7 -0
- data/ext/gyp/test/ios/app-bundle/test-archs.gyp +109 -0
- data/ext/gyp/test/ios/app-bundle/test-assets-catalog.gyp +45 -0
- data/ext/gyp/test/ios/app-bundle/test-crosscompile.gyp +47 -0
- data/ext/gyp/test/ios/app-bundle/test-device.gyp +109 -0
- data/ext/gyp/test/ios/app-bundle/test.gyp +75 -0
- data/ext/gyp/test/ios/app-bundle/tool_main.cc +7 -0
- data/ext/gyp/test/ios/copies-with-xcode-envvars/Info.plist +24 -0
- data/ext/gyp/test/ios/copies-with-xcode-envvars/copies-with-xcode-envvars.gyp +97 -0
- data/ext/gyp/test/ios/copies-with-xcode-envvars/empty.c +1 -0
- data/ext/gyp/test/ios/copies-with-xcode-envvars/file0 +1 -0
- data/ext/gyp/test/ios/copies-with-xcode-envvars/file1 +1 -0
- data/ext/gyp/test/ios/copies-with-xcode-envvars/file10 +1 -0
- data/ext/gyp/test/ios/copies-with-xcode-envvars/file11 +1 -0
- data/ext/gyp/test/ios/copies-with-xcode-envvars/file2 +1 -0
- data/ext/gyp/test/ios/copies-with-xcode-envvars/file3 +1 -0
- data/ext/gyp/test/ios/copies-with-xcode-envvars/file4 +1 -0
- data/ext/gyp/test/ios/copies-with-xcode-envvars/file5 +1 -0
- data/ext/gyp/test/ios/copies-with-xcode-envvars/file6 +1 -0
- data/ext/gyp/test/ios/copies-with-xcode-envvars/file7 +1 -0
- data/ext/gyp/test/ios/copies-with-xcode-envvars/file8 +1 -0
- data/ext/gyp/test/ios/copies-with-xcode-envvars/file9 +1 -0
- data/ext/gyp/test/ios/deployment-target/check-version-min.c +33 -0
- data/ext/gyp/test/ios/deployment-target/deployment-target.gyp +34 -0
- data/ext/gyp/test/ios/extension/ActionExtension/ActionViewController.h +9 -0
- data/ext/gyp/test/ios/extension/ActionExtension/ActionViewController.m +31 -0
- data/ext/gyp/test/ios/extension/ActionExtension/Info.plist +42 -0
- data/ext/gyp/test/ios/extension/ActionExtension/MainInterface.storyboard +63 -0
- data/ext/gyp/test/ios/extension/ExtensionContainer/AppDelegate.h +12 -0
- data/ext/gyp/test/ios/extension/ExtensionContainer/AppDelegate.m +19 -0
- data/ext/gyp/test/ios/extension/ExtensionContainer/Base.lproj/Main.storyboard +25 -0
- data/ext/gyp/test/ios/extension/ExtensionContainer/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
- data/ext/gyp/test/ios/extension/ExtensionContainer/Images.xcassets/LaunchImage.launchimage/Contents.json +51 -0
- data/ext/gyp/test/ios/extension/ExtensionContainer/Info.plist +32 -0
- data/ext/gyp/test/ios/extension/ExtensionContainer/ViewController.h +11 -0
- data/ext/gyp/test/ios/extension/ExtensionContainer/ViewController.m +24 -0
- data/ext/gyp/test/ios/extension/ExtensionContainer/main.m +13 -0
- data/ext/gyp/test/ios/extension/extension.gyp +91 -0
- data/ext/gyp/test/ios/framework/framework.gyp +43 -0
- data/ext/gyp/test/ios/framework/iOSFramework/Info.plist +26 -0
- data/ext/gyp/test/ios/framework/iOSFramework/Thing.h +10 -0
- data/ext/gyp/test/ios/framework/iOSFramework/Thing.m +22 -0
- data/ext/gyp/test/ios/framework/iOSFramework/iOSFramework.h +9 -0
- data/ext/gyp/test/ios/gyptest-app-ios-assets-catalog.py +57 -0
- data/ext/gyp/test/ios/gyptest-app-ios.py +76 -0
- data/ext/gyp/test/ios/gyptest-archs.py +62 -0
- data/ext/gyp/test/ios/gyptest-copies-with-xcode-envvars.py +65 -0
- data/ext/gyp/test/ios/gyptest-crosscompile.py +34 -0
- data/ext/gyp/test/ios/gyptest-deployment-target.py +23 -0
- data/ext/gyp/test/ios/gyptest-extension.py +51 -0
- data/ext/gyp/test/ios/gyptest-framework.py +37 -0
- data/ext/gyp/test/ios/gyptest-per-config-settings.py +190 -0
- data/ext/gyp/test/ios/gyptest-watch.py +44 -0
- data/ext/gyp/test/ios/gyptest-xcode-ninja.py +25 -0
- data/ext/gyp/test/ios/watch/WatchApp/Images.xcassets/AppIcon.appiconset/Contents.json +62 -0
- data/ext/gyp/test/ios/watch/WatchApp/Images.xcassets/LaunchImage.launchimage/Contents.json +24 -0
- data/ext/gyp/test/ios/watch/WatchApp/Info.plist +35 -0
- data/ext/gyp/test/ios/watch/WatchApp/Interface.storyboard +15 -0
- data/ext/gyp/test/ios/watch/WatchContainer/AppDelegate.h +12 -0
- data/ext/gyp/test/ios/watch/WatchContainer/AppDelegate.m +19 -0
- data/ext/gyp/test/ios/watch/WatchContainer/Base.lproj/Main.storyboard +25 -0
- data/ext/gyp/test/ios/watch/WatchContainer/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
- data/ext/gyp/test/ios/watch/WatchContainer/Images.xcassets/LaunchImage.launchimage/Contents.json +51 -0
- data/ext/gyp/test/ios/watch/WatchContainer/Info.plist +32 -0
- data/ext/gyp/test/ios/watch/WatchContainer/ViewController.h +11 -0
- data/ext/gyp/test/ios/watch/WatchContainer/ViewController.m +24 -0
- data/ext/gyp/test/ios/watch/WatchContainer/main.m +13 -0
- data/ext/gyp/test/ios/watch/WatchKitExtension/Images.xcassets/MyImage.imageset/Contents.json +20 -0
- data/ext/gyp/test/ios/watch/WatchKitExtension/Info.plist +38 -0
- data/ext/gyp/test/ios/watch/WatchKitExtension/InterfaceController.h +10 -0
- data/ext/gyp/test/ios/watch/WatchKitExtension/InterfaceController.m +25 -0
- data/ext/gyp/test/ios/watch/WatchKitExtension/MainInterface.storyboard +63 -0
- data/ext/gyp/test/ios/watch/watch.gyp +105 -0
- data/ext/gyp/test/ios/xctests/App/AppDelegate.h +11 -0
- data/ext/gyp/test/ios/xctests/App/AppDelegate.m +18 -0
- data/ext/gyp/test/ios/xctests/App/Base.lproj/LaunchScreen.xib +41 -0
- data/ext/gyp/test/ios/xctests/App/Base.lproj/Main.storyboard +25 -0
- data/ext/gyp/test/ios/xctests/App/Images.xcassets/AppIcon.appiconset/Contents.json +68 -0
- data/ext/gyp/test/ios/xctests/App/Info.plist +47 -0
- data/ext/gyp/test/ios/xctests/App/ViewController.h +9 -0
- data/ext/gyp/test/ios/xctests/App/ViewController.m +21 -0
- data/ext/gyp/test/ios/xctests/App/main.m +13 -0
- data/ext/gyp/test/ios/xctests/AppTests/AppTests.m +31 -0
- data/ext/gyp/test/ios/xctests/AppTests/Info.plist +24 -0
- data/ext/gyp/test/ios/xctests/gyptest-xctests.py +49 -0
- data/ext/gyp/test/ios/xctests/xctests.gyp +74 -0
- data/ext/gyp/test/lib/README.txt +17 -0
- data/ext/gyp/test/lib/TestCmd.py +1597 -0
- data/ext/gyp/test/lib/TestCommon.py +591 -0
- data/ext/gyp/test/lib/TestGyp.py +1259 -0
- data/ext/gyp/test/lib/TestMac.py +76 -0
- data/ext/gyp/test/lib/TestWin.py +101 -0
- data/ext/gyp/test/library/gyptest-shared-obj-install-path.py +39 -0
- data/ext/gyp/test/library/gyptest-shared.py +84 -0
- data/ext/gyp/test/library/gyptest-static.py +84 -0
- data/ext/gyp/test/library/src/lib1.c +10 -0
- data/ext/gyp/test/library/src/lib1_moveable.c +10 -0
- data/ext/gyp/test/library/src/lib2.c +10 -0
- data/ext/gyp/test/library/src/lib2_moveable.c +10 -0
- data/ext/gyp/test/library/src/library.gyp +58 -0
- data/ext/gyp/test/library/src/program.c +15 -0
- data/ext/gyp/test/library/src/shared_dependency.gyp +33 -0
- data/ext/gyp/test/library_dirs/gyptest-library-dirs.py +50 -0
- data/ext/gyp/test/library_dirs/subdir/README.txt +1 -0
- data/ext/gyp/test/library_dirs/subdir/hello.cc +11 -0
- data/ext/gyp/test/library_dirs/subdir/mylib.cc +9 -0
- data/ext/gyp/test/library_dirs/subdir/mylib.h +12 -0
- data/ext/gyp/test/library_dirs/subdir/test-win.gyp +60 -0
- data/ext/gyp/test/library_dirs/subdir/test.gyp +68 -0
- data/ext/gyp/test/link-dependency/gyptest-link-dependency.py +23 -0
- data/ext/gyp/test/link-dependency/main.c +7 -0
- data/ext/gyp/test/link-dependency/mymalloc.c +12 -0
- data/ext/gyp/test/link-dependency/test.gyp +37 -0
- data/ext/gyp/test/link-objects/base.c +6 -0
- data/ext/gyp/test/link-objects/extra.c +5 -0
- data/ext/gyp/test/link-objects/gyptest-all.py +28 -0
- data/ext/gyp/test/link-objects/link-objects.gyp +24 -0
- data/ext/gyp/test/linux/gyptest-implicit-rpath.py +48 -0
- data/ext/gyp/test/linux/gyptest-ldflags-duplicates.py +22 -0
- data/ext/gyp/test/linux/gyptest-ldflags-from-environment.py +45 -0
- data/ext/gyp/test/linux/gyptest-target-rpath.py +43 -0
- data/ext/gyp/test/linux/implicit-rpath/file.c +1 -0
- data/ext/gyp/test/linux/implicit-rpath/main.c +1 -0
- data/ext/gyp/test/linux/implicit-rpath/test.gyp +47 -0
- data/ext/gyp/test/linux/ldflags-duplicates/check-ldflags.py +28 -0
- data/ext/gyp/test/linux/ldflags-duplicates/lib1.c +6 -0
- data/ext/gyp/test/linux/ldflags-duplicates/lib2.c +6 -0
- data/ext/gyp/test/linux/ldflags-duplicates/main.c +7 -0
- data/ext/gyp/test/linux/ldflags-duplicates/test.gyp +45 -0
- data/ext/gyp/test/linux/ldflags-from-environment/main.c +7 -0
- data/ext/gyp/test/linux/ldflags-from-environment/test.gyp +23 -0
- data/ext/gyp/test/linux/target-rpath/file.c +1 -0
- data/ext/gyp/test/linux/target-rpath/main.c +1 -0
- data/ext/gyp/test/linux/target-rpath/test.gyp +47 -0
- data/ext/gyp/test/mac/action-envvars/action/action.gyp +34 -0
- data/ext/gyp/test/mac/action-envvars/action/action.sh +8 -0
- data/ext/gyp/test/mac/app-bundle/TestApp/English.lproj/InfoPlist-error.strings +3 -0
- data/ext/gyp/test/mac/app-bundle/TestApp/English.lproj/InfoPlist.strings +3 -0
- data/ext/gyp/test/mac/app-bundle/TestApp/English.lproj/MainMenu.xib +4119 -0
- data/ext/gyp/test/mac/app-bundle/TestApp/English.lproj/utf-16be.strings +0 -0
- data/ext/gyp/test/mac/app-bundle/TestApp/English.lproj/utf-16le.strings +0 -0
- data/ext/gyp/test/mac/app-bundle/TestApp/Images.xcassets/AppIcon.appiconset/Contents.json +58 -0
- data/ext/gyp/test/mac/app-bundle/TestApp/Images.xcassets/image.imageset/Contents.json +23 -0
- data/ext/gyp/test/mac/app-bundle/TestApp/Images.xcassets/image.imageset/super_sylvain.png +0 -0
- data/ext/gyp/test/mac/app-bundle/TestApp/Images.xcassets/image.imageset/super_sylvain@2x.png +0 -0
- data/ext/gyp/test/mac/app-bundle/TestApp/Images.xcassets/image.imageset/super_sylvain@3x.png +0 -0
- data/ext/gyp/test/mac/app-bundle/TestApp/TestApp-Info.plist +34 -0
- data/ext/gyp/test/mac/app-bundle/TestApp/TestAppAppDelegate.h +13 -0
- data/ext/gyp/test/mac/app-bundle/TestApp/TestAppAppDelegate.m +15 -0
- data/ext/gyp/test/mac/app-bundle/TestApp/main.m +10 -0
- data/ext/gyp/test/mac/app-bundle/empty.c +0 -0
- data/ext/gyp/test/mac/app-bundle/test-assets-catalog.gyp +43 -0
- data/ext/gyp/test/mac/app-bundle/test-error.gyp +31 -0
- data/ext/gyp/test/mac/app-bundle/test.gyp +41 -0
- data/ext/gyp/test/mac/archs/empty_main.cc +1 -0
- data/ext/gyp/test/mac/archs/file.mm +1 -0
- data/ext/gyp/test/mac/archs/file_a.cc +8 -0
- data/ext/gyp/test/mac/archs/file_a.h +10 -0
- data/ext/gyp/test/mac/archs/file_b.cc +8 -0
- data/ext/gyp/test/mac/archs/file_b.h +10 -0
- data/ext/gyp/test/mac/archs/file_c.cc +11 -0
- data/ext/gyp/test/mac/archs/file_d.cc +11 -0
- data/ext/gyp/test/mac/archs/header.h +1 -0
- data/ext/gyp/test/mac/archs/my_file.cc +4 -0
- data/ext/gyp/test/mac/archs/my_main_file.cc +9 -0
- data/ext/gyp/test/mac/archs/test-archs-multiarch.gyp +92 -0
- data/ext/gyp/test/mac/archs/test-archs-x86_64.gyp +27 -0
- data/ext/gyp/test/mac/archs/test-dependencies.gyp +92 -0
- data/ext/gyp/test/mac/archs/test-no-archs.gyp +21 -0
- data/ext/gyp/test/mac/archs/test-valid-archs.gyp +28 -0
- data/ext/gyp/test/mac/bundle-resources/change.sh +3 -0
- data/ext/gyp/test/mac/bundle-resources/executable-file.sh +3 -0
- data/ext/gyp/test/mac/bundle-resources/secret.txt +1 -0
- data/ext/gyp/test/mac/bundle-resources/test.gyp +59 -0
- data/ext/gyp/test/mac/cflags/ccfile.cc +7 -0
- data/ext/gyp/test/mac/cflags/ccfile_withcflags.cc +7 -0
- data/ext/gyp/test/mac/cflags/cfile.c +7 -0
- data/ext/gyp/test/mac/cflags/cppfile.cpp +7 -0
- data/ext/gyp/test/mac/cflags/cppfile_withcflags.cpp +7 -0
- data/ext/gyp/test/mac/cflags/cxxfile.cxx +7 -0
- data/ext/gyp/test/mac/cflags/cxxfile_withcflags.cxx +7 -0
- data/ext/gyp/test/mac/cflags/mfile.m +7 -0
- data/ext/gyp/test/mac/cflags/mmfile.mm +7 -0
- data/ext/gyp/test/mac/cflags/mmfile_withcflags.mm +7 -0
- data/ext/gyp/test/mac/cflags/test.gyp +132 -0
- data/ext/gyp/test/mac/clang-cxx-language-standard/c++11.cc +8 -0
- data/ext/gyp/test/mac/clang-cxx-language-standard/c++98.cc +24 -0
- data/ext/gyp/test/mac/clang-cxx-language-standard/clang-cxx-language-standard.gyp +30 -0
- data/ext/gyp/test/mac/clang-cxx-library/clang-cxx-library.gyp +32 -0
- data/ext/gyp/test/mac/clang-cxx-library/libc++.cc +11 -0
- data/ext/gyp/test/mac/clang-cxx-library/libstdc++.cc +11 -0
- data/ext/gyp/test/mac/copies-with-xcode-envvars/copies-with-xcode-envvars.gyp +87 -0
- data/ext/gyp/test/mac/copies-with-xcode-envvars/empty.c +1 -0
- data/ext/gyp/test/mac/copies-with-xcode-envvars/file0 +1 -0
- data/ext/gyp/test/mac/copies-with-xcode-envvars/file1 +1 -0
- data/ext/gyp/test/mac/copies-with-xcode-envvars/file10 +1 -0
- data/ext/gyp/test/mac/copies-with-xcode-envvars/file11 +1 -0
- data/ext/gyp/test/mac/copies-with-xcode-envvars/file2 +1 -0
- data/ext/gyp/test/mac/copies-with-xcode-envvars/file3 +1 -0
- data/ext/gyp/test/mac/copies-with-xcode-envvars/file4 +1 -0
- data/ext/gyp/test/mac/copies-with-xcode-envvars/file5 +1 -0
- data/ext/gyp/test/mac/copies-with-xcode-envvars/file6 +1 -0
- data/ext/gyp/test/mac/copies-with-xcode-envvars/file7 +1 -0
- data/ext/gyp/test/mac/copies-with-xcode-envvars/file8 +1 -0
- data/ext/gyp/test/mac/copies-with-xcode-envvars/file9 +1 -0
- data/ext/gyp/test/mac/copy-dylib/empty.c +1 -0
- data/ext/gyp/test/mac/copy-dylib/test.gyp +31 -0
- data/ext/gyp/test/mac/debuginfo/file.c +6 -0
- data/ext/gyp/test/mac/debuginfo/test.gyp +82 -0
- data/ext/gyp/test/mac/depend-on-bundle/English.lproj/InfoPlist.strings +1 -0
- data/ext/gyp/test/mac/depend-on-bundle/Info.plist +28 -0
- data/ext/gyp/test/mac/depend-on-bundle/bundle.c +1 -0
- data/ext/gyp/test/mac/depend-on-bundle/executable.c +4 -0
- data/ext/gyp/test/mac/depend-on-bundle/test.gyp +28 -0
- data/ext/gyp/test/mac/deployment-target/check-version-min.c +33 -0
- data/ext/gyp/test/mac/deployment-target/deployment-target.gyp +28 -0
- data/ext/gyp/test/mac/framework/TestFramework/English.lproj/InfoPlist.strings +2 -0
- data/ext/gyp/test/mac/framework/TestFramework/Info.plist +28 -0
- data/ext/gyp/test/mac/framework/TestFramework/ObjCVector.h +28 -0
- data/ext/gyp/test/mac/framework/TestFramework/ObjCVector.mm +63 -0
- data/ext/gyp/test/mac/framework/TestFramework/ObjCVectorInternal.h +9 -0
- data/ext/gyp/test/mac/framework/TestFramework/TestFramework_Prefix.pch +7 -0
- data/ext/gyp/test/mac/framework/empty.c +0 -0
- data/ext/gyp/test/mac/framework/framework.gyp +108 -0
- data/ext/gyp/test/mac/framework-dirs/calculate.c +15 -0
- data/ext/gyp/test/mac/framework-dirs/framework-dirs.gyp +21 -0
- data/ext/gyp/test/mac/framework-headers/myframework.h +8 -0
- data/ext/gyp/test/mac/framework-headers/myframework.m +8 -0
- data/ext/gyp/test/mac/framework-headers/test.gyp +44 -0
- data/ext/gyp/test/mac/global-settings/src/dir1/dir1.gyp +11 -0
- data/ext/gyp/test/mac/global-settings/src/dir2/dir2.gyp +22 -0
- data/ext/gyp/test/mac/global-settings/src/dir2/file.txt +1 -0
- data/ext/gyp/test/mac/gyptest-action-envvars.py +36 -0
- data/ext/gyp/test/mac/gyptest-app-assets-catalog.py +125 -0
- data/ext/gyp/test/mac/gyptest-app-error.py +49 -0
- data/ext/gyp/test/mac/gyptest-app.py +122 -0
- data/ext/gyp/test/mac/gyptest-archs.py +96 -0
- data/ext/gyp/test/mac/gyptest-bundle-resources.py +64 -0
- data/ext/gyp/test/mac/gyptest-cflags.py +21 -0
- data/ext/gyp/test/mac/gyptest-clang-cxx-language-standard.py +25 -0
- data/ext/gyp/test/mac/gyptest-clang-cxx-library.py +32 -0
- data/ext/gyp/test/mac/gyptest-copies-with-xcode-envvars.py +65 -0
- data/ext/gyp/test/mac/gyptest-copies.py +62 -0
- data/ext/gyp/test/mac/gyptest-copy-dylib.py +25 -0
- data/ext/gyp/test/mac/gyptest-debuginfo.py +36 -0
- data/ext/gyp/test/mac/gyptest-depend-on-bundle.py +45 -0
- data/ext/gyp/test/mac/gyptest-deployment-target.py +27 -0
- data/ext/gyp/test/mac/gyptest-framework-dirs.py +23 -0
- data/ext/gyp/test/mac/gyptest-framework-headers.py +38 -0
- data/ext/gyp/test/mac/gyptest-framework.py +80 -0
- data/ext/gyp/test/mac/gyptest-global-settings.py +33 -0
- data/ext/gyp/test/mac/gyptest-identical-name.py +45 -0
- data/ext/gyp/test/mac/gyptest-infoplist-process.py +56 -0
- data/ext/gyp/test/mac/gyptest-installname.py +85 -0
- data/ext/gyp/test/mac/gyptest-kext.py +27 -0
- data/ext/gyp/test/mac/gyptest-ldflags-passed-to-libtool.py +37 -0
- data/ext/gyp/test/mac/gyptest-ldflags.py +74 -0
- data/ext/gyp/test/mac/gyptest-libraries.py +30 -0
- data/ext/gyp/test/mac/gyptest-libtool-zero.py +26 -0
- data/ext/gyp/test/mac/gyptest-loadable-module-bundle-product-extension.py +31 -0
- data/ext/gyp/test/mac/gyptest-loadable-module.py +54 -0
- data/ext/gyp/test/mac/gyptest-lto.py +66 -0
- data/ext/gyp/test/mac/gyptest-missing-cfbundlesignature.py +34 -0
- data/ext/gyp/test/mac/gyptest-non-strs-flattened-to-env.py +38 -0
- data/ext/gyp/test/mac/gyptest-objc-arc.py +27 -0
- data/ext/gyp/test/mac/gyptest-objc-gc.py +51 -0
- data/ext/gyp/test/mac/gyptest-postbuild-copy-bundle.py +75 -0
- data/ext/gyp/test/mac/gyptest-postbuild-defaults.py +34 -0
- data/ext/gyp/test/mac/gyptest-postbuild-fail.py +71 -0
- data/ext/gyp/test/mac/gyptest-postbuild-multiple-configurations.py +26 -0
- data/ext/gyp/test/mac/gyptest-postbuild-static-library.py +28 -0
- data/ext/gyp/test/mac/gyptest-postbuild.py +53 -0
- data/ext/gyp/test/mac/gyptest-prefixheader.py +20 -0
- data/ext/gyp/test/mac/gyptest-rebuild.py +46 -0
- data/ext/gyp/test/mac/gyptest-rpath.py +50 -0
- data/ext/gyp/test/mac/gyptest-sdkroot.py +56 -0
- data/ext/gyp/test/mac/gyptest-sourceless-module.py +77 -0
- data/ext/gyp/test/mac/gyptest-strip-default.py +97 -0
- data/ext/gyp/test/mac/gyptest-strip.py +66 -0
- data/ext/gyp/test/mac/gyptest-swift-library.py +67 -0
- data/ext/gyp/test/mac/gyptest-type-envvars.py +26 -0
- data/ext/gyp/test/mac/gyptest-unicode-settings.py +20 -0
- data/ext/gyp/test/mac/gyptest-xcode-env-order.py +95 -0
- data/ext/gyp/test/mac/gyptest-xcode-gcc-clang.py +40 -0
- data/ext/gyp/test/mac/gyptest-xcode-gcc.py +60 -0
- data/ext/gyp/test/mac/gyptest-xcode-support-actions.py +25 -0
- data/ext/gyp/test/mac/gyptest-xctest.py +41 -0
- data/ext/gyp/test/mac/gyptest-xcuitest.py +39 -0
- data/ext/gyp/test/mac/identical-name/proxy/proxy.cc +2 -0
- data/ext/gyp/test/mac/identical-name/proxy/proxy.gyp +9 -0
- data/ext/gyp/test/mac/identical-name/proxy/testlib/testlib.cc +2 -0
- data/ext/gyp/test/mac/identical-name/proxy/testlib/testlib.gyp +8 -0
- data/ext/gyp/test/mac/identical-name/test-should-fail.gyp +10 -0
- data/ext/gyp/test/mac/identical-name/test.gyp +11 -0
- data/ext/gyp/test/mac/identical-name/test.gypi +7 -0
- data/ext/gyp/test/mac/identical-name/testlib/main.cc +3 -0
- data/ext/gyp/test/mac/identical-name/testlib/testlib.gyp +14 -0
- data/ext/gyp/test/mac/identical-name/testlib/void.cc +2 -0
- data/ext/gyp/test/mac/infoplist-process/Info.plist +36 -0
- data/ext/gyp/test/mac/infoplist-process/main.c +7 -0
- data/ext/gyp/test/mac/infoplist-process/test1.gyp +25 -0
- data/ext/gyp/test/mac/infoplist-process/test2.gyp +25 -0
- data/ext/gyp/test/mac/infoplist-process/test3.gyp +25 -0
- data/ext/gyp/test/mac/installname/Info.plist +28 -0
- data/ext/gyp/test/mac/installname/file.c +1 -0
- data/ext/gyp/test/mac/installname/main.c +1 -0
- data/ext/gyp/test/mac/installname/test.gyp +93 -0
- data/ext/gyp/test/mac/kext/GypKext/GypKext-Info.plist +35 -0
- data/ext/gyp/test/mac/kext/GypKext/GypKext.c +16 -0
- data/ext/gyp/test/mac/kext/kext.gyp +18 -0
- data/ext/gyp/test/mac/ldflags/subdirectory/Info.plist +8 -0
- data/ext/gyp/test/mac/ldflags/subdirectory/file.c +2 -0
- data/ext/gyp/test/mac/ldflags/subdirectory/symbol_list.def +1 -0
- data/ext/gyp/test/mac/ldflags/subdirectory/test.gyp +66 -0
- data/ext/gyp/test/mac/ldflags-libtool/file.c +1 -0
- data/ext/gyp/test/mac/ldflags-libtool/test.gyp +17 -0
- data/ext/gyp/test/mac/libraries/subdir/README.txt +1 -0
- data/ext/gyp/test/mac/libraries/subdir/hello.cc +10 -0
- data/ext/gyp/test/mac/libraries/subdir/mylib.c +7 -0
- data/ext/gyp/test/mac/libraries/subdir/test.gyp +65 -0
- data/ext/gyp/test/mac/libtool-zero/mylib.c +7 -0
- data/ext/gyp/test/mac/libtool-zero/test.gyp +18 -0
- data/ext/gyp/test/mac/loadable-module/Info.plist +26 -0
- data/ext/gyp/test/mac/loadable-module/module.c +11 -0
- data/ext/gyp/test/mac/loadable-module/test.gyp +18 -0
- data/ext/gyp/test/mac/loadable-module-bundle-product-extension/src.cc +7 -0
- data/ext/gyp/test/mac/loadable-module-bundle-product-extension/test.gyp +24 -0
- data/ext/gyp/test/mac/lto/asmfile.S +2 -0
- data/ext/gyp/test/mac/lto/ccfile.cc +1 -0
- data/ext/gyp/test/mac/lto/cfile.c +1 -0
- data/ext/gyp/test/mac/lto/mfile.m +1 -0
- data/ext/gyp/test/mac/lto/mmfile.mm +1 -0
- data/ext/gyp/test/mac/lto/test.gyp +35 -0
- data/ext/gyp/test/mac/missing-cfbundlesignature/Info.plist +10 -0
- data/ext/gyp/test/mac/missing-cfbundlesignature/Other-Info.plist +12 -0
- data/ext/gyp/test/mac/missing-cfbundlesignature/Third-Info.plist +12 -0
- data/ext/gyp/test/mac/missing-cfbundlesignature/file.c +1 -0
- data/ext/gyp/test/mac/missing-cfbundlesignature/test.gyp +34 -0
- data/ext/gyp/test/mac/non-strs-flattened-to-env/Info.plist +15 -0
- data/ext/gyp/test/mac/non-strs-flattened-to-env/main.c +7 -0
- data/ext/gyp/test/mac/non-strs-flattened-to-env/test.gyp +27 -0
- data/ext/gyp/test/mac/objc-arc/c-file.c +5 -0
- data/ext/gyp/test/mac/objc-arc/cc-file.cc +5 -0
- data/ext/gyp/test/mac/objc-arc/m-file-arc-weak.m +9 -0
- data/ext/gyp/test/mac/objc-arc/m-file-no-arc.m +9 -0
- data/ext/gyp/test/mac/objc-arc/m-file.m +9 -0
- data/ext/gyp/test/mac/objc-arc/mm-file-arc-weak.mm +9 -0
- data/ext/gyp/test/mac/objc-arc/mm-file-no-arc.mm +9 -0
- data/ext/gyp/test/mac/objc-arc/mm-file.mm +9 -0
- data/ext/gyp/test/mac/objc-arc/test.gyp +53 -0
- data/ext/gyp/test/mac/objc-gc/c-file.c +1 -0
- data/ext/gyp/test/mac/objc-gc/cc-file.cc +1 -0
- data/ext/gyp/test/mac/objc-gc/main.m +6 -0
- data/ext/gyp/test/mac/objc-gc/needs-gc-mm.mm +1 -0
- data/ext/gyp/test/mac/objc-gc/needs-gc.m +1 -0
- data/ext/gyp/test/mac/objc-gc/test.gyp +102 -0
- data/ext/gyp/test/mac/postbuild-copy-bundle/Framework-Info.plist +30 -0
- data/ext/gyp/test/mac/postbuild-copy-bundle/TestApp-Info.plist +32 -0
- data/ext/gyp/test/mac/postbuild-copy-bundle/copied.txt +1 -0
- data/ext/gyp/test/mac/postbuild-copy-bundle/empty.c +0 -0
- data/ext/gyp/test/mac/postbuild-copy-bundle/main.c +4 -0
- data/ext/gyp/test/mac/postbuild-copy-bundle/postbuild-copy-framework.sh +9 -0
- data/ext/gyp/test/mac/postbuild-copy-bundle/resource_file.sb +1 -0
- data/ext/gyp/test/mac/postbuild-copy-bundle/test.gyp +49 -0
- data/ext/gyp/test/mac/postbuild-defaults/Info.plist +13 -0
- data/ext/gyp/test/mac/postbuild-defaults/main.c +7 -0
- data/ext/gyp/test/mac/postbuild-defaults/postbuild-defaults.sh +15 -0
- data/ext/gyp/test/mac/postbuild-defaults/test.gyp +26 -0
- data/ext/gyp/test/mac/postbuild-fail/file.c +6 -0
- data/ext/gyp/test/mac/postbuild-fail/postbuild-fail.sh +6 -0
- data/ext/gyp/test/mac/postbuild-fail/test.gyp +38 -0
- data/ext/gyp/test/mac/postbuild-fail/touch-dynamic.sh +7 -0
- data/ext/gyp/test/mac/postbuild-fail/touch-static.sh +7 -0
- data/ext/gyp/test/mac/postbuild-multiple-configurations/main.c +4 -0
- data/ext/gyp/test/mac/postbuild-multiple-configurations/postbuild-touch-file.sh +7 -0
- data/ext/gyp/test/mac/postbuild-multiple-configurations/test.gyp +26 -0
- data/ext/gyp/test/mac/postbuild-static-library/empty.c +4 -0
- data/ext/gyp/test/mac/postbuild-static-library/postbuild-touch-file.sh +7 -0
- data/ext/gyp/test/mac/postbuild-static-library/test.gyp +34 -0
- data/ext/gyp/test/mac/postbuilds/copy.sh +3 -0
- data/ext/gyp/test/mac/postbuilds/file.c +4 -0
- data/ext/gyp/test/mac/postbuilds/file_g.c +4 -0
- data/ext/gyp/test/mac/postbuilds/file_h.c +4 -0
- data/ext/gyp/test/mac/postbuilds/script/shared_library_postbuild.sh +23 -0
- data/ext/gyp/test/mac/postbuilds/script/static_library_postbuild.sh +23 -0
- data/ext/gyp/test/mac/postbuilds/subdirectory/copied_file.txt +1 -0
- data/ext/gyp/test/mac/postbuilds/subdirectory/nested_target.gyp +53 -0
- data/ext/gyp/test/mac/postbuilds/test.gyp +93 -0
- data/ext/gyp/test/mac/prefixheader/file.c +1 -0
- data/ext/gyp/test/mac/prefixheader/file.cc +1 -0
- data/ext/gyp/test/mac/prefixheader/file.m +1 -0
- data/ext/gyp/test/mac/prefixheader/file.mm +1 -0
- data/ext/gyp/test/mac/prefixheader/header.h +1 -0
- data/ext/gyp/test/mac/prefixheader/test.gyp +82 -0
- data/ext/gyp/test/mac/rebuild/TestApp-Info.plist +32 -0
- data/ext/gyp/test/mac/rebuild/delay-touch.sh +6 -0
- data/ext/gyp/test/mac/rebuild/empty.c +0 -0
- data/ext/gyp/test/mac/rebuild/main.c +1 -0
- data/ext/gyp/test/mac/rebuild/test.gyp +56 -0
- data/ext/gyp/test/mac/rpath/file.c +1 -0
- data/ext/gyp/test/mac/rpath/main.c +1 -0
- data/ext/gyp/test/mac/rpath/test.gyp +48 -0
- data/ext/gyp/test/mac/sdkroot/file.cc +5 -0
- data/ext/gyp/test/mac/sdkroot/test.gyp +35 -0
- data/ext/gyp/test/mac/sdkroot/test_shorthand.sh +20 -0
- data/ext/gyp/test/mac/sourceless-module/empty.c +1 -0
- data/ext/gyp/test/mac/sourceless-module/empty.txt +2 -0
- data/ext/gyp/test/mac/sourceless-module/fun.c +1 -0
- data/ext/gyp/test/mac/sourceless-module/test.gyp +96 -0
- data/ext/gyp/test/mac/strip/file.c +22 -0
- data/ext/gyp/test/mac/strip/main.c +25 -0
- data/ext/gyp/test/mac/strip/strip.saves +5 -0
- data/ext/gyp/test/mac/strip/subdirectory/nested_file.c +1 -0
- data/ext/gyp/test/mac/strip/subdirectory/nested_strip.saves +5 -0
- data/ext/gyp/test/mac/strip/subdirectory/subdirectory.gyp +38 -0
- data/ext/gyp/test/mac/strip/subdirectory/test_reading_save_file_from_postbuild.sh +5 -0
- data/ext/gyp/test/mac/strip/test-defaults.gyp +51 -0
- data/ext/gyp/test/mac/strip/test.gyp +119 -0
- data/ext/gyp/test/mac/swift-library/Info.plist +28 -0
- data/ext/gyp/test/mac/swift-library/file.swift +9 -0
- data/ext/gyp/test/mac/swift-library/test.gyp +21 -0
- data/ext/gyp/test/mac/type_envvars/file.c +6 -0
- data/ext/gyp/test/mac/type_envvars/test.gyp +100 -0
- data/ext/gyp/test/mac/type_envvars/test_bundle_executable.sh +30 -0
- data/ext/gyp/test/mac/type_envvars/test_bundle_loadable_module.sh +35 -0
- data/ext/gyp/test/mac/type_envvars/test_bundle_shared_library.sh +38 -0
- data/ext/gyp/test/mac/type_envvars/test_check_sdkroot.sh +47 -0
- data/ext/gyp/test/mac/type_envvars/test_nonbundle_executable.sh +33 -0
- data/ext/gyp/test/mac/type_envvars/test_nonbundle_loadable_module.sh +31 -0
- data/ext/gyp/test/mac/type_envvars/test_nonbundle_none.sh +32 -0
- data/ext/gyp/test/mac/type_envvars/test_nonbundle_shared_library.sh +31 -0
- data/ext/gyp/test/mac/type_envvars/test_nonbundle_static_library.sh +31 -0
- data/ext/gyp/test/mac/unicode-settings/file.cc +2 -0
- data/ext/gyp/test/mac/unicode-settings/test.gyp +23 -0
- data/ext/gyp/test/mac/unicode-settings/test_bundle_display_name.sh +7 -0
- data/ext/gyp/test/mac/xcode-env-order/Info.plist +56 -0
- data/ext/gyp/test/mac/xcode-env-order/file.ext1 +0 -0
- data/ext/gyp/test/mac/xcode-env-order/file.ext2 +0 -0
- data/ext/gyp/test/mac/xcode-env-order/file.ext3 +0 -0
- data/ext/gyp/test/mac/xcode-env-order/main.c +7 -0
- data/ext/gyp/test/mac/xcode-env-order/test.gyp +121 -0
- data/ext/gyp/test/mac/xcode-gcc/aliasing.cc +13 -0
- data/ext/gyp/test/mac/xcode-gcc/test-clang.gyp +42 -0
- data/ext/gyp/test/mac/xcode-gcc/test.gyp +60 -0
- data/ext/gyp/test/mac/xcode-gcc/valid_c.c +8 -0
- data/ext/gyp/test/mac/xcode-gcc/valid_cc.cc +8 -0
- data/ext/gyp/test/mac/xcode-gcc/valid_m.m +8 -0
- data/ext/gyp/test/mac/xcode-gcc/valid_mm.mm +8 -0
- data/ext/gyp/test/mac/xcode-gcc/warn_about_invalid_offsetof_macro.cc +15 -0
- data/ext/gyp/test/mac/xcode-gcc/warn_about_missing_newline.c +8 -0
- data/ext/gyp/test/mac/xcode-support-actions/source.c +0 -0
- data/ext/gyp/test/mac/xcode-support-actions/test.gyp +26 -0
- data/ext/gyp/test/mac/xctest/MyClass.h +8 -0
- data/ext/gyp/test/mac/xctest/MyClass.m +8 -0
- data/ext/gyp/test/mac/xctest/TestCase.m +16 -0
- data/ext/gyp/test/mac/xctest/resource.txt +1 -0
- data/ext/gyp/test/mac/xctest/test.gyp +47 -0
- data/ext/gyp/test/mac/xctest/test.xcodeproj/xcshareddata/xcschemes/classes.xcscheme +69 -0
- data/ext/gyp/test/mac/xcuitest/Info.plist +28 -0
- data/ext/gyp/test/mac/xcuitest/MyAppDelegate.h +8 -0
- data/ext/gyp/test/mac/xcuitest/MyAppDelegate.m +19 -0
- data/ext/gyp/test/mac/xcuitest/TestCase.m +15 -0
- data/ext/gyp/test/mac/xcuitest/main.m +15 -0
- data/ext/gyp/test/mac/xcuitest/resource.txt +1 -0
- data/ext/gyp/test/mac/xcuitest/test.gyp +69 -0
- data/ext/gyp/test/make/dependencies.gyp +15 -0
- data/ext/gyp/test/make/gyptest-dependencies.py +26 -0
- data/ext/gyp/test/make/gyptest-noload.py +57 -0
- data/ext/gyp/test/make/main.cc +12 -0
- data/ext/gyp/test/make/main.h +0 -0
- data/ext/gyp/test/make/noload/all.gyp +18 -0
- data/ext/gyp/test/make/noload/lib/shared.c +3 -0
- data/ext/gyp/test/make/noload/lib/shared.gyp +16 -0
- data/ext/gyp/test/make/noload/lib/shared.h +1 -0
- data/ext/gyp/test/make/noload/main.c +9 -0
- data/ext/gyp/test/make_global_settings/ar/gyptest-make_global_settings_ar.py +126 -0
- data/ext/gyp/test/make_global_settings/ar/make_global_settings_ar.gyp +29 -0
- data/ext/gyp/test/make_global_settings/basics/gyptest-make_global_settings.py +51 -0
- data/ext/gyp/test/make_global_settings/basics/make_global_settings.gyp +17 -0
- data/ext/gyp/test/make_global_settings/env-wrapper/gyptest-wrapper.py +51 -0
- data/ext/gyp/test/make_global_settings/env-wrapper/wrapper.gyp +17 -0
- data/ext/gyp/test/make_global_settings/full-toolchain/bar.cc +1 -0
- data/ext/gyp/test/make_global_settings/full-toolchain/foo.c +1 -0
- data/ext/gyp/test/make_global_settings/full-toolchain/gyptest-make_global_settings.py +53 -0
- data/ext/gyp/test/make_global_settings/full-toolchain/make_global_settings.gyp +22 -0
- data/ext/gyp/test/make_global_settings/full-toolchain/my_nm.py +9 -0
- data/ext/gyp/test/make_global_settings/full-toolchain/my_readelf.py +9 -0
- data/ext/gyp/test/make_global_settings/ld/gyptest-make_global_settings_ld.py +130 -0
- data/ext/gyp/test/make_global_settings/ld/make_global_settings_ld.gyp +29 -0
- data/ext/gyp/test/make_global_settings/wrapper/gyptest-wrapper.py +52 -0
- data/ext/gyp/test/make_global_settings/wrapper/wrapper.gyp +21 -0
- data/ext/gyp/test/many-actions/file0 +0 -0
- data/ext/gyp/test/many-actions/file1 +0 -0
- data/ext/gyp/test/many-actions/file2 +0 -0
- data/ext/gyp/test/many-actions/file3 +0 -0
- data/ext/gyp/test/many-actions/file4 +0 -0
- data/ext/gyp/test/many-actions/gyptest-many-actions-unsorted.py +43 -0
- data/ext/gyp/test/many-actions/gyptest-many-actions.py +29 -0
- data/ext/gyp/test/many-actions/many-actions-unsorted.gyp +154 -0
- data/ext/gyp/test/many-actions/many-actions.gyp +1817 -0
- data/ext/gyp/test/module/gyptest-default.py +28 -0
- data/ext/gyp/test/module/src/lib1.c +10 -0
- data/ext/gyp/test/module/src/lib2.c +10 -0
- data/ext/gyp/test/module/src/module.gyp +53 -0
- data/ext/gyp/test/module/src/program.c +111 -0
- data/ext/gyp/test/msvs/buildevents/buildevents.gyp +14 -0
- data/ext/gyp/test/msvs/buildevents/gyptest-msbuild-supports-prepostbuild.py +24 -0
- data/ext/gyp/test/msvs/buildevents/gyptest-ninja-warnings.py +29 -0
- data/ext/gyp/test/msvs/buildevents/main.cc +5 -0
- data/ext/gyp/test/msvs/config_attrs/gyptest-config_attrs.py +41 -0
- data/ext/gyp/test/msvs/config_attrs/hello.c +11 -0
- data/ext/gyp/test/msvs/config_attrs/hello.gyp +21 -0
- data/ext/gyp/test/msvs/express/base/base.gyp +22 -0
- data/ext/gyp/test/msvs/express/express.gyp +19 -0
- data/ext/gyp/test/msvs/express/gyptest-express.py +29 -0
- data/ext/gyp/test/msvs/external_builder/external.gyp +68 -0
- data/ext/gyp/test/msvs/external_builder/external_builder.py +9 -0
- data/ext/gyp/test/msvs/external_builder/gyptest-all.py +59 -0
- data/ext/gyp/test/msvs/external_builder/hello.cpp +10 -0
- data/ext/gyp/test/msvs/external_builder/hello.z +6 -0
- data/ext/gyp/test/msvs/external_builder/msbuild_action.py +9 -0
- data/ext/gyp/test/msvs/external_builder/msbuild_rule.py +11 -0
- data/ext/gyp/test/msvs/filters/filters.gyp +47 -0
- data/ext/gyp/test/msvs/filters/gyptest-filters-2008.py +68 -0
- data/ext/gyp/test/msvs/filters/gyptest-filters-2010.py +57 -0
- data/ext/gyp/test/msvs/list_excluded/gyptest-all.py +51 -0
- data/ext/gyp/test/msvs/list_excluded/hello.cpp +10 -0
- data/ext/gyp/test/msvs/list_excluded/hello_exclude.gyp +19 -0
- data/ext/gyp/test/msvs/list_excluded/hello_mac.cpp +10 -0
- data/ext/gyp/test/msvs/missing_sources/gyptest-missing.py +43 -0
- data/ext/gyp/test/msvs/missing_sources/hello_missing.gyp +15 -0
- data/ext/gyp/test/msvs/multiple_actions_error_handling/action_fail.py +7 -0
- data/ext/gyp/test/msvs/multiple_actions_error_handling/action_succeed.py +7 -0
- data/ext/gyp/test/msvs/multiple_actions_error_handling/actions.gyp +40 -0
- data/ext/gyp/test/msvs/multiple_actions_error_handling/gyptest.py +26 -0
- data/ext/gyp/test/msvs/props/AppName.props +14 -0
- data/ext/gyp/test/msvs/props/AppName.vsprops +11 -0
- data/ext/gyp/test/msvs/props/gyptest-props.py +22 -0
- data/ext/gyp/test/msvs/props/hello.c +11 -0
- data/ext/gyp/test/msvs/props/hello.gyp +22 -0
- data/ext/gyp/test/msvs/rules_stdout_stderr/dummy.bar +5 -0
- data/ext/gyp/test/msvs/rules_stdout_stderr/dummy.foo +5 -0
- data/ext/gyp/test/msvs/rules_stdout_stderr/gyptest-rules-stdout-stderr.py +29 -0
- data/ext/gyp/test/msvs/rules_stdout_stderr/rule_stderr.py +8 -0
- data/ext/gyp/test/msvs/rules_stdout_stderr/rule_stdout.py +7 -0
- data/ext/gyp/test/msvs/rules_stdout_stderr/rules-stdout-stderr.gyp +52 -0
- data/ext/gyp/test/msvs/shared_output/common.gypi +17 -0
- data/ext/gyp/test/msvs/shared_output/gyptest-shared_output.py +41 -0
- data/ext/gyp/test/msvs/shared_output/hello.c +12 -0
- data/ext/gyp/test/msvs/shared_output/hello.gyp +21 -0
- data/ext/gyp/test/msvs/shared_output/there/there.c +12 -0
- data/ext/gyp/test/msvs/shared_output/there/there.gyp +16 -0
- data/ext/gyp/test/msvs/uldi2010/gyptest-all.py +20 -0
- data/ext/gyp/test/msvs/uldi2010/hello.c +13 -0
- data/ext/gyp/test/msvs/uldi2010/hello.gyp +26 -0
- data/ext/gyp/test/msvs/uldi2010/hello2.c +10 -0
- data/ext/gyp/test/multiple-targets/gyptest-all.py +30 -0
- data/ext/gyp/test/multiple-targets/gyptest-default.py +30 -0
- data/ext/gyp/test/multiple-targets/src/common.c +7 -0
- data/ext/gyp/test/multiple-targets/src/multiple.gyp +24 -0
- data/ext/gyp/test/multiple-targets/src/prog1.c +10 -0
- data/ext/gyp/test/multiple-targets/src/prog2.c +10 -0
- data/ext/gyp/test/ninja/action-rule-hash/gyptest-action-rule-hash.py +32 -0
- data/ext/gyp/test/ninja/action-rule-hash/subdir/action-rule-hash.gyp +29 -0
- data/ext/gyp/test/ninja/action-rule-hash/subdir/emit.py +13 -0
- data/ext/gyp/test/ninja/action_dependencies/gyptest-action-dependencies.py +64 -0
- data/ext/gyp/test/ninja/action_dependencies/src/a.c +10 -0
- data/ext/gyp/test/ninja/action_dependencies/src/a.h +13 -0
- data/ext/gyp/test/ninja/action_dependencies/src/action_dependencies.gyp +88 -0
- data/ext/gyp/test/ninja/action_dependencies/src/b.c +18 -0
- data/ext/gyp/test/ninja/action_dependencies/src/b.h +13 -0
- data/ext/gyp/test/ninja/action_dependencies/src/c.c +10 -0
- data/ext/gyp/test/ninja/action_dependencies/src/c.h +13 -0
- data/ext/gyp/test/ninja/action_dependencies/src/emit.py +11 -0
- data/ext/gyp/test/ninja/chained-dependency/chained-dependency.gyp +53 -0
- data/ext/gyp/test/ninja/chained-dependency/chained.c +5 -0
- data/ext/gyp/test/ninja/chained-dependency/gyptest-chained-dependency.py +30 -0
- data/ext/gyp/test/ninja/empty-and-non-empty-duplicate-name/gyptest-empty-and-non-empty-duplicate-name.py +23 -0
- data/ext/gyp/test/ninja/empty-and-non-empty-duplicate-name/subdir/included.gyp +19 -0
- data/ext/gyp/test/ninja/empty-and-non-empty-duplicate-name/test.gyp +19 -0
- data/ext/gyp/test/ninja/normalize-paths-win/gyptest-normalize-paths.py +46 -0
- data/ext/gyp/test/ninja/normalize-paths-win/hello.cc +7 -0
- data/ext/gyp/test/ninja/normalize-paths-win/normalize-paths.gyp +68 -0
- data/ext/gyp/test/ninja/s-needs-no-depfiles/empty.s +1 -0
- data/ext/gyp/test/ninja/s-needs-no-depfiles/gyptest-s-needs-no-depfiles.py +42 -0
- data/ext/gyp/test/ninja/s-needs-no-depfiles/s-needs-no-depfiles.gyp +13 -0
- data/ext/gyp/test/ninja/solibs_avoid_relinking/gyptest-solibs-avoid-relinking.py +48 -0
- data/ext/gyp/test/ninja/solibs_avoid_relinking/main.cc +5 -0
- data/ext/gyp/test/ninja/solibs_avoid_relinking/solib.cc +8 -0
- data/ext/gyp/test/ninja/solibs_avoid_relinking/solibs_avoid_relinking.gyp +38 -0
- data/ext/gyp/test/ninja/use-console/foo.bar +5 -0
- data/ext/gyp/test/ninja/use-console/gyptest-use-console.py +29 -0
- data/ext/gyp/test/ninja/use-console/use-console.gyp +60 -0
- data/ext/gyp/test/ninja/use-custom-environment-files/gyptest-use-custom-environment-files.py +28 -0
- data/ext/gyp/test/ninja/use-custom-environment-files/use-custom-environment-files.cc +7 -0
- data/ext/gyp/test/ninja/use-custom-environment-files/use-custom-environment-files.gyp +15 -0
- data/ext/gyp/test/no-cpp/gyptest-no-cpp.py +53 -0
- data/ext/gyp/test/no-cpp/src/call-f-main.c +2 -0
- data/ext/gyp/test/no-cpp/src/empty-main.c +1 -0
- data/ext/gyp/test/no-cpp/src/f.cc +3 -0
- data/ext/gyp/test/no-cpp/src/test.gyp +25 -0
- data/ext/gyp/test/no-output/gyptest-no-output.py +21 -0
- data/ext/gyp/test/no-output/src/nooutput.gyp +17 -0
- data/ext/gyp/test/product/gyptest-product.py +43 -0
- data/ext/gyp/test/product/hello.c +15 -0
- data/ext/gyp/test/product/product.gyp +128 -0
- data/ext/gyp/test/prune_targets/gyptest-prune-targets.py +66 -0
- data/ext/gyp/test/prune_targets/lib1.cc +6 -0
- data/ext/gyp/test/prune_targets/lib2.cc +6 -0
- data/ext/gyp/test/prune_targets/lib3.cc +6 -0
- data/ext/gyp/test/prune_targets/lib_indirect.cc +6 -0
- data/ext/gyp/test/prune_targets/program.cc +7 -0
- data/ext/gyp/test/prune_targets/test1.gyp +26 -0
- data/ext/gyp/test/prune_targets/test2.gyp +30 -0
- data/ext/gyp/test/relative/foo/a/a.cc +9 -0
- data/ext/gyp/test/relative/foo/a/a.gyp +13 -0
- data/ext/gyp/test/relative/foo/a/c/c.cc +9 -0
- data/ext/gyp/test/relative/foo/a/c/c.gyp +12 -0
- data/ext/gyp/test/relative/foo/b/b.cc +9 -0
- data/ext/gyp/test/relative/foo/b/b.gyp +9 -0
- data/ext/gyp/test/relative/gyptest-default.py +25 -0
- data/ext/gyp/test/rename/filecase/file.c +1 -0
- data/ext/gyp/test/rename/filecase/test-casesensitive.gyp +15 -0
- data/ext/gyp/test/rename/filecase/test.gyp +14 -0
- data/ext/gyp/test/rename/gyptest-filecase.py +35 -0
- data/ext/gyp/test/restat/gyptest-restat.py +31 -0
- data/ext/gyp/test/restat/src/create_intermediate.py +17 -0
- data/ext/gyp/test/restat/src/restat.gyp +50 -0
- data/ext/gyp/test/restat/src/touch.py +16 -0
- data/ext/gyp/test/rules/gyptest-all.py +84 -0
- data/ext/gyp/test/rules/gyptest-default.py +70 -0
- data/ext/gyp/test/rules/gyptest-input-root.py +26 -0
- data/ext/gyp/test/rules/gyptest-special-variables.py +18 -0
- data/ext/gyp/test/rules/src/actions.gyp +23 -0
- data/ext/gyp/test/rules/src/an_asm.S +6 -0
- data/ext/gyp/test/rules/src/as.bat +7 -0
- data/ext/gyp/test/rules/src/copy-file.py +11 -0
- data/ext/gyp/test/rules/src/external/external.gyp +66 -0
- data/ext/gyp/test/rules/src/external/file1.in +1 -0
- data/ext/gyp/test/rules/src/external/file2.in +1 -0
- data/ext/gyp/test/rules/src/input-root.gyp +24 -0
- data/ext/gyp/test/rules/src/noaction/file1.in +1 -0
- data/ext/gyp/test/rules/src/noaction/no_action_with_rules_fails.gyp +37 -0
- data/ext/gyp/test/rules/src/rule.py +17 -0
- data/ext/gyp/test/rules/src/somefile.ext +0 -0
- data/ext/gyp/test/rules/src/special-variables.gyp +34 -0
- data/ext/gyp/test/rules/src/subdir1/executable.gyp +37 -0
- data/ext/gyp/test/rules/src/subdir1/function1.in +6 -0
- data/ext/gyp/test/rules/src/subdir1/function2.in +6 -0
- data/ext/gyp/test/rules/src/subdir1/program.c +12 -0
- data/ext/gyp/test/rules/src/subdir2/both_rule_and_action_input.gyp +50 -0
- data/ext/gyp/test/rules/src/subdir2/file1.in +1 -0
- data/ext/gyp/test/rules/src/subdir2/file2.in +1 -0
- data/ext/gyp/test/rules/src/subdir2/never_used.gyp +31 -0
- data/ext/gyp/test/rules/src/subdir2/no_action.gyp +38 -0
- data/ext/gyp/test/rules/src/subdir2/no_inputs.gyp +32 -0
- data/ext/gyp/test/rules/src/subdir2/none.gyp +33 -0
- data/ext/gyp/test/rules/src/subdir2/program.c +12 -0
- data/ext/gyp/test/rules/src/subdir3/executable2.gyp +37 -0
- data/ext/gyp/test/rules/src/subdir3/function3.in +6 -0
- data/ext/gyp/test/rules/src/subdir3/program.c +10 -0
- data/ext/gyp/test/rules/src/subdir4/asm-function.assem +10 -0
- data/ext/gyp/test/rules/src/subdir4/build-asm.gyp +49 -0
- data/ext/gyp/test/rules/src/subdir4/program.c +19 -0
- data/ext/gyp/test/rules-dirname/gyptest-dirname.py +57 -0
- data/ext/gyp/test/rules-dirname/src/actions.gyp +15 -0
- data/ext/gyp/test/rules-dirname/src/copy-file.py +11 -0
- data/ext/gyp/test/rules-dirname/src/subdir/a/b/c.gencc +8 -0
- data/ext/gyp/test/rules-dirname/src/subdir/a/b/c.printvars +1 -0
- data/ext/gyp/test/rules-dirname/src/subdir/foo/bar/baz.gencc +8 -0
- data/ext/gyp/test/rules-dirname/src/subdir/foo/bar/baz.printvars +1 -0
- data/ext/gyp/test/rules-dirname/src/subdir/input-rule-dirname.gyp +140 -0
- data/ext/gyp/test/rules-dirname/src/subdir/main.cc +14 -0
- data/ext/gyp/test/rules-dirname/src/subdir/nodir.gencc +8 -0
- data/ext/gyp/test/rules-dirname/src/subdir/printvars.py +14 -0
- data/ext/gyp/test/rules-rebuild/gyptest-all.py +70 -0
- data/ext/gyp/test/rules-rebuild/gyptest-default.py +91 -0
- data/ext/gyp/test/rules-rebuild/src/main.c +12 -0
- data/ext/gyp/test/rules-rebuild/src/make-sources.py +19 -0
- data/ext/gyp/test/rules-rebuild/src/prog1.in +7 -0
- data/ext/gyp/test/rules-rebuild/src/prog2.in +7 -0
- data/ext/gyp/test/rules-rebuild/src/same_target.gyp +31 -0
- data/ext/gyp/test/rules-use-built-dependencies/gyptest-use-built-dependencies.py +23 -0
- data/ext/gyp/test/rules-use-built-dependencies/src/main.cc +17 -0
- data/ext/gyp/test/rules-use-built-dependencies/src/use-built-dependencies-rule.gyp +42 -0
- data/ext/gyp/test/rules-variables/gyptest-rules-variables.py +35 -0
- data/ext/gyp/test/rules-variables/src/input_ext.c +9 -0
- data/ext/gyp/test/rules-variables/src/input_name/test.c +9 -0
- data/ext/gyp/test/rules-variables/src/input_path/subdir/test.c +9 -0
- data/ext/gyp/test/rules-variables/src/subdir/input_dirname.c +9 -0
- data/ext/gyp/test/rules-variables/src/subdir/test.c +18 -0
- data/ext/gyp/test/rules-variables/src/test.input_root.c +9 -0
- data/ext/gyp/test/rules-variables/src/variables.gyp +40 -0
- data/ext/gyp/test/same-gyp-name/gyptest-all.py +38 -0
- data/ext/gyp/test/same-gyp-name/gyptest-default.py +38 -0
- data/ext/gyp/test/same-gyp-name/gyptest-library.py +20 -0
- data/ext/gyp/test/same-gyp-name/library/one/sub.gyp +11 -0
- data/ext/gyp/test/same-gyp-name/library/test.gyp +15 -0
- data/ext/gyp/test/same-gyp-name/library/two/sub.gyp +11 -0
- data/ext/gyp/test/same-gyp-name/src/all.gyp +16 -0
- data/ext/gyp/test/same-gyp-name/src/subdir1/executable.gyp +15 -0
- data/ext/gyp/test/same-gyp-name/src/subdir1/main1.cc +6 -0
- data/ext/gyp/test/same-gyp-name/src/subdir2/executable.gyp +15 -0
- data/ext/gyp/test/same-gyp-name/src/subdir2/main2.cc +6 -0
- data/ext/gyp/test/same-rule-output-file-name/gyptest-all.py +23 -0
- data/ext/gyp/test/same-rule-output-file-name/src/subdir1/subdir1.gyp +30 -0
- data/ext/gyp/test/same-rule-output-file-name/src/subdir2/subdir2.gyp +30 -0
- data/ext/gyp/test/same-rule-output-file-name/src/subdirs.gyp +16 -0
- data/ext/gyp/test/same-rule-output-file-name/src/touch.py +11 -0
- data/ext/gyp/test/same-source-file-name/gyptest-all.py +34 -0
- data/ext/gyp/test/same-source-file-name/gyptest-default.py +34 -0
- data/ext/gyp/test/same-source-file-name/gyptest-pass-executable.py +33 -0
- data/ext/gyp/test/same-source-file-name/gyptest-pass-shared.py +18 -0
- data/ext/gyp/test/same-source-file-name/gyptest-static.py +34 -0
- data/ext/gyp/test/same-source-file-name/src/all.gyp +30 -0
- data/ext/gyp/test/same-source-file-name/src/double-executable.gyp +21 -0
- data/ext/gyp/test/same-source-file-name/src/double-shared.gyp +27 -0
- data/ext/gyp/test/same-source-file-name/src/double-static.gyp +22 -0
- data/ext/gyp/test/same-source-file-name/src/func.c +6 -0
- data/ext/gyp/test/same-source-file-name/src/prog1.c +16 -0
- data/ext/gyp/test/same-source-file-name/src/prog2.c +16 -0
- data/ext/gyp/test/same-source-file-name/src/prog3.c +18 -0
- data/ext/gyp/test/same-source-file-name/src/subdir1/func.c +6 -0
- data/ext/gyp/test/same-source-file-name/src/subdir2/func.c +6 -0
- data/ext/gyp/test/same-target-name/gyptest-same-target-name.py +18 -0
- data/ext/gyp/test/same-target-name/src/all.gyp +16 -0
- data/ext/gyp/test/same-target-name/src/executable1.gyp +15 -0
- data/ext/gyp/test/same-target-name/src/executable2.gyp +15 -0
- data/ext/gyp/test/same-target-name-different-directory/gyptest-all.py +41 -0
- data/ext/gyp/test/same-target-name-different-directory/src/subdir1/subdir1.gyp +66 -0
- data/ext/gyp/test/same-target-name-different-directory/src/subdir2/subdir2.gyp +66 -0
- data/ext/gyp/test/same-target-name-different-directory/src/subdirs.gyp +16 -0
- data/ext/gyp/test/same-target-name-different-directory/src/touch.py +11 -0
- data/ext/gyp/test/sanitize-rule-names/blah.S +0 -0
- data/ext/gyp/test/sanitize-rule-names/gyptest-sanitize-rule-names.py +17 -0
- data/ext/gyp/test/sanitize-rule-names/hello.cc +7 -0
- data/ext/gyp/test/sanitize-rule-names/sanitize-rule-names.gyp +27 -0
- data/ext/gyp/test/sanitize-rule-names/script.py +10 -0
- data/ext/gyp/test/self-dependency/common.gypi +13 -0
- data/ext/gyp/test/self-dependency/dep.gyp +23 -0
- data/ext/gyp/test/self-dependency/gyptest-self-dependency.py +19 -0
- data/ext/gyp/test/self-dependency/self_dependency.gyp +15 -0
- data/ext/gyp/test/sibling/gyptest-all.py +42 -0
- data/ext/gyp/test/sibling/gyptest-relocate.py +44 -0
- data/ext/gyp/test/sibling/src/build/all.gyp +16 -0
- data/ext/gyp/test/sibling/src/prog1/prog1.c +7 -0
- data/ext/gyp/test/sibling/src/prog1/prog1.gyp +15 -0
- data/ext/gyp/test/sibling/src/prog2/prog2.c +7 -0
- data/ext/gyp/test/sibling/src/prog2/prog2.gyp +15 -0
- data/ext/gyp/test/small/gyptest-small.py +56 -0
- data/ext/gyp/test/standalone/gyptest-standalone.py +35 -0
- data/ext/gyp/test/standalone/standalone.gyp +12 -0
- data/ext/gyp/test/standalone-static-library/gyptest-standalone-static-library.py +50 -0
- data/ext/gyp/test/standalone-static-library/invalid.gyp +16 -0
- data/ext/gyp/test/standalone-static-library/mylib.c +7 -0
- data/ext/gyp/test/standalone-static-library/mylib.gyp +26 -0
- data/ext/gyp/test/standalone-static-library/prog.c +7 -0
- data/ext/gyp/test/subdirectory/gyptest-SYMROOT-all.py +36 -0
- data/ext/gyp/test/subdirectory/gyptest-SYMROOT-default.py +37 -0
- data/ext/gyp/test/subdirectory/gyptest-subdir-all.py +34 -0
- data/ext/gyp/test/subdirectory/gyptest-subdir-default.py +34 -0
- data/ext/gyp/test/subdirectory/gyptest-subdir2-deep.py +25 -0
- data/ext/gyp/test/subdirectory/gyptest-top-all.py +43 -0
- data/ext/gyp/test/subdirectory/gyptest-top-default.py +43 -0
- data/ext/gyp/test/subdirectory/src/prog1.c +7 -0
- data/ext/gyp/test/subdirectory/src/prog1.gyp +21 -0
- data/ext/gyp/test/subdirectory/src/subdir/prog2.c +7 -0
- data/ext/gyp/test/subdirectory/src/subdir/prog2.gyp +18 -0
- data/ext/gyp/test/subdirectory/src/subdir/subdir2/prog3.c +7 -0
- data/ext/gyp/test/subdirectory/src/subdir/subdir2/prog3.gyp +18 -0
- data/ext/gyp/test/subdirectory/src/symroot.gypi +16 -0
- data/ext/gyp/test/symlinks/gyptest-symlinks.py +66 -0
- data/ext/gyp/test/symlinks/hello.c +12 -0
- data/ext/gyp/test/symlinks/hello.gyp +15 -0
- data/ext/gyp/test/target/gyptest-target.py +37 -0
- data/ext/gyp/test/target/hello.c +7 -0
- data/ext/gyp/test/target/target.gyp +24 -0
- data/ext/gyp/test/toolsets/gyptest-toolsets.py +31 -0
- data/ext/gyp/test/toolsets/main.cc +13 -0
- data/ext/gyp/test/toolsets/toolsets.cc +11 -0
- data/ext/gyp/test/toolsets/toolsets.gyp +62 -0
- data/ext/gyp/test/toolsets/toolsets_shared.cc +11 -0
- data/ext/gyp/test/toplevel-dir/gyptest-toplevel-dir.py +31 -0
- data/ext/gyp/test/toplevel-dir/src/sub1/main.gyp +18 -0
- data/ext/gyp/test/toplevel-dir/src/sub1/prog1.c +7 -0
- data/ext/gyp/test/toplevel-dir/src/sub2/prog2.c +7 -0
- data/ext/gyp/test/toplevel-dir/src/sub2/prog2.gyp +15 -0
- data/ext/gyp/test/variables/commands/commands-repeated.gyp +128 -0
- data/ext/gyp/test/variables/commands/commands-repeated.gyp.stdout +136 -0
- data/ext/gyp/test/variables/commands/commands-repeated.gypd.golden +77 -0
- data/ext/gyp/test/variables/commands/commands.gyp +91 -0
- data/ext/gyp/test/variables/commands/commands.gyp.ignore-env.stdout +96 -0
- data/ext/gyp/test/variables/commands/commands.gyp.stdout +96 -0
- data/ext/gyp/test/variables/commands/commands.gypd.golden +66 -0
- data/ext/gyp/test/variables/commands/commands.gypi +23 -0
- data/ext/gyp/test/variables/commands/gyptest-commands-ignore-env.py +47 -0
- data/ext/gyp/test/variables/commands/gyptest-commands-repeated-multidir.py +23 -0
- data/ext/gyp/test/variables/commands/gyptest-commands-repeated.py +40 -0
- data/ext/gyp/test/variables/commands/gyptest-commands.py +40 -0
- data/ext/gyp/test/variables/commands/repeated_multidir/dir_1/test_1.gyp +13 -0
- data/ext/gyp/test/variables/commands/repeated_multidir/dir_2/test_2.gyp +13 -0
- data/ext/gyp/test/variables/commands/repeated_multidir/main.gyp +16 -0
- data/ext/gyp/test/variables/commands/repeated_multidir/print_cwd_basename.py +11 -0
- data/ext/gyp/test/variables/commands/repeated_multidir/repeated_command_common.gypi +25 -0
- data/ext/gyp/test/variables/commands/test.py +7 -0
- data/ext/gyp/test/variables/commands/update_golden +11 -0
- data/ext/gyp/test/variables/empty/empty.gyp +13 -0
- data/ext/gyp/test/variables/empty/empty.gypi +9 -0
- data/ext/gyp/test/variables/empty/gyptest-empty.py +19 -0
- data/ext/gyp/test/variables/filelist/filelist.gyp.stdout +26 -0
- data/ext/gyp/test/variables/filelist/filelist.gypd.golden +43 -0
- data/ext/gyp/test/variables/filelist/gyptest-filelist-golden.py +53 -0
- data/ext/gyp/test/variables/filelist/gyptest-filelist.py +29 -0
- data/ext/gyp/test/variables/filelist/src/dummy.py +5 -0
- data/ext/gyp/test/variables/filelist/src/filelist.gyp +93 -0
- data/ext/gyp/test/variables/filelist/src/filelist2.gyp +40 -0
- data/ext/gyp/test/variables/filelist/update_golden +8 -0
- data/ext/gyp/test/variables/latelate/gyptest-latelate.py +25 -0
- data/ext/gyp/test/variables/latelate/src/latelate.gyp +34 -0
- data/ext/gyp/test/variables/latelate/src/program.cc +13 -0
- data/ext/gyp/test/variables/variable-in-path/C1/hello.cc +7 -0
- data/ext/gyp/test/variables/variable-in-path/gyptest-variable-in-path.py +23 -0
- data/ext/gyp/test/variables/variable-in-path/variable-in-path.gyp +31 -0
- data/ext/gyp/test/win/asm-files/asm-files.gyp +17 -0
- data/ext/gyp/test/win/asm-files/b.s +0 -0
- data/ext/gyp/test/win/asm-files/c.S +0 -0
- data/ext/gyp/test/win/asm-files/hello.cc +7 -0
- data/ext/gyp/test/win/batch-file-action/batch-file-action.gyp +21 -0
- data/ext/gyp/test/win/batch-file-action/infile +1 -0
- data/ext/gyp/test/win/batch-file-action/somecmd.bat +5 -0
- data/ext/gyp/test/win/command-quote/a.S +0 -0
- data/ext/gyp/test/win/command-quote/bat with spaces.bat +7 -0
- data/ext/gyp/test/win/command-quote/command-quote.gyp +79 -0
- data/ext/gyp/test/win/command-quote/go.bat +7 -0
- data/ext/gyp/test/win/command-quote/subdir/and/another/in-subdir.gyp +27 -0
- data/ext/gyp/test/win/compiler-flags/additional-include-dirs.cc +10 -0
- data/ext/gyp/test/win/compiler-flags/additional-include-dirs.gyp +20 -0
- data/ext/gyp/test/win/compiler-flags/additional-options.cc +10 -0
- data/ext/gyp/test/win/compiler-flags/additional-options.gyp +31 -0
- data/ext/gyp/test/win/compiler-flags/analysis.gyp +40 -0
- data/ext/gyp/test/win/compiler-flags/buffer-security-check.gyp +51 -0
- data/ext/gyp/test/win/compiler-flags/buffer-security.cc +12 -0
- data/ext/gyp/test/win/compiler-flags/calling-convention-cdecl.def +6 -0
- data/ext/gyp/test/win/compiler-flags/calling-convention-fastcall.def +6 -0
- data/ext/gyp/test/win/compiler-flags/calling-convention-stdcall.def +6 -0
- data/ext/gyp/test/win/compiler-flags/calling-convention-vectorcall.def +6 -0
- data/ext/gyp/test/win/compiler-flags/calling-convention.cc +6 -0
- data/ext/gyp/test/win/compiler-flags/calling-convention.gyp +66 -0
- data/ext/gyp/test/win/compiler-flags/character-set-mbcs.cc +11 -0
- data/ext/gyp/test/win/compiler-flags/character-set-unicode.cc +15 -0
- data/ext/gyp/test/win/compiler-flags/character-set.gyp +35 -0
- data/ext/gyp/test/win/compiler-flags/compile-as-managed.cc +9 -0
- data/ext/gyp/test/win/compiler-flags/compile-as-managed.gyp +29 -0
- data/ext/gyp/test/win/compiler-flags/compile-as-winrt.cc +12 -0
- data/ext/gyp/test/win/compiler-flags/compile-as-winrt.gyp +20 -0
- data/ext/gyp/test/win/compiler-flags/debug-format.gyp +48 -0
- data/ext/gyp/test/win/compiler-flags/default-char-is-unsigned.cc +15 -0
- data/ext/gyp/test/win/compiler-flags/default-char-is-unsigned.gyp +20 -0
- data/ext/gyp/test/win/compiler-flags/disable-specific-warnings.cc +9 -0
- data/ext/gyp/test/win/compiler-flags/disable-specific-warnings.gyp +29 -0
- data/ext/gyp/test/win/compiler-flags/enable-enhanced-instruction-set.cc +28 -0
- data/ext/gyp/test/win/compiler-flags/enable-enhanced-instruction-set.gyp +68 -0
- data/ext/gyp/test/win/compiler-flags/exception-handling-on.cc +24 -0
- data/ext/gyp/test/win/compiler-flags/exception-handling.gyp +46 -0
- data/ext/gyp/test/win/compiler-flags/floating-point-model-fast.cc +19 -0
- data/ext/gyp/test/win/compiler-flags/floating-point-model-precise.cc +19 -0
- data/ext/gyp/test/win/compiler-flags/floating-point-model-strict.cc +19 -0
- data/ext/gyp/test/win/compiler-flags/floating-point-model.gyp +43 -0
- data/ext/gyp/test/win/compiler-flags/force-include-files-with-precompiled.cc +10 -0
- data/ext/gyp/test/win/compiler-flags/force-include-files.cc +8 -0
- data/ext/gyp/test/win/compiler-flags/force-include-files.gyp +36 -0
- data/ext/gyp/test/win/compiler-flags/function-level-linking.cc +11 -0
- data/ext/gyp/test/win/compiler-flags/function-level-linking.gyp +28 -0
- data/ext/gyp/test/win/compiler-flags/hello.cc +7 -0
- data/ext/gyp/test/win/compiler-flags/optimizations.gyp +207 -0
- data/ext/gyp/test/win/compiler-flags/pdbname-override.gyp +26 -0
- data/ext/gyp/test/win/compiler-flags/pdbname.cc +7 -0
- data/ext/gyp/test/win/compiler-flags/pdbname.gyp +24 -0
- data/ext/gyp/test/win/compiler-flags/precomp.cc +6 -0
- data/ext/gyp/test/win/compiler-flags/rtti-on.cc +11 -0
- data/ext/gyp/test/win/compiler-flags/rtti.gyp +37 -0
- data/ext/gyp/test/win/compiler-flags/runtime-checks.cc +11 -0
- data/ext/gyp/test/win/compiler-flags/runtime-checks.gyp +29 -0
- data/ext/gyp/test/win/compiler-flags/runtime-library-md.cc +19 -0
- data/ext/gyp/test/win/compiler-flags/runtime-library-mdd.cc +19 -0
- data/ext/gyp/test/win/compiler-flags/runtime-library-mt.cc +19 -0
- data/ext/gyp/test/win/compiler-flags/runtime-library-mtd.cc +19 -0
- data/ext/gyp/test/win/compiler-flags/runtime-library.gyp +48 -0
- data/ext/gyp/test/win/compiler-flags/subdir/header.h +0 -0
- data/ext/gyp/test/win/compiler-flags/treat-wchar-t-as-built-in-type.gyp +33 -0
- data/ext/gyp/test/win/compiler-flags/treat-wchar-t-as-built-in-type1.cc +11 -0
- data/ext/gyp/test/win/compiler-flags/treat-wchar-t-as-built-in-type2.cc +11 -0
- data/ext/gyp/test/win/compiler-flags/uninit.cc +13 -0
- data/ext/gyp/test/win/compiler-flags/warning-as-error.cc +9 -0
- data/ext/gyp/test/win/compiler-flags/warning-as-error.gyp +37 -0
- data/ext/gyp/test/win/compiler-flags/warning-level.gyp +115 -0
- data/ext/gyp/test/win/compiler-flags/warning-level1.cc +8 -0
- data/ext/gyp/test/win/compiler-flags/warning-level2.cc +14 -0
- data/ext/gyp/test/win/compiler-flags/warning-level3.cc +11 -0
- data/ext/gyp/test/win/compiler-flags/warning-level4.cc +10 -0
- data/ext/gyp/test/win/enable-winrt/dllmain.cc +30 -0
- data/ext/gyp/test/win/enable-winrt/enable-winrt.gyp +39 -0
- data/ext/gyp/test/win/generator-output-different-drive/gyptest-generator-output-different-drive.py +44 -0
- data/ext/gyp/test/win/generator-output-different-drive/prog.c +10 -0
- data/ext/gyp/test/win/generator-output-different-drive/prog.gyp +15 -0
- data/ext/gyp/test/win/gyptest-asm-files.py +26 -0
- data/ext/gyp/test/win/gyptest-cl-additional-include-dirs.py +22 -0
- data/ext/gyp/test/win/gyptest-cl-additional-options.py +28 -0
- data/ext/gyp/test/win/gyptest-cl-analysis.py +30 -0
- data/ext/gyp/test/win/gyptest-cl-buffer-security-check.py +53 -0
- data/ext/gyp/test/win/gyptest-cl-calling-convention.py +22 -0
- data/ext/gyp/test/win/gyptest-cl-character-set.py +22 -0
- data/ext/gyp/test/win/gyptest-cl-compile-as-managed.py +24 -0
- data/ext/gyp/test/win/gyptest-cl-compile-as-winrt.py +20 -0
- data/ext/gyp/test/win/gyptest-cl-debug-format.py +43 -0
- data/ext/gyp/test/win/gyptest-cl-default-char-is-unsigned.py +22 -0
- data/ext/gyp/test/win/gyptest-cl-disable-specific-warnings.py +32 -0
- data/ext/gyp/test/win/gyptest-cl-enable-enhanced-instruction-set.py +49 -0
- data/ext/gyp/test/win/gyptest-cl-exception-handling.py +33 -0
- data/ext/gyp/test/win/gyptest-cl-floating-point-model.py +22 -0
- data/ext/gyp/test/win/gyptest-cl-force-include-files.py +22 -0
- data/ext/gyp/test/win/gyptest-cl-function-level-linking.py +54 -0
- data/ext/gyp/test/win/gyptest-cl-optimizations.py +105 -0
- data/ext/gyp/test/win/gyptest-cl-pdbname-override.py +27 -0
- data/ext/gyp/test/win/gyptest-cl-pdbname.py +30 -0
- data/ext/gyp/test/win/gyptest-cl-rtti.py +30 -0
- data/ext/gyp/test/win/gyptest-cl-runtime-checks.py +30 -0
- data/ext/gyp/test/win/gyptest-cl-runtime-library.py +22 -0
- data/ext/gyp/test/win/gyptest-cl-treat-wchar-t-as-built-in-type.py +22 -0
- data/ext/gyp/test/win/gyptest-cl-warning-as-error.py +30 -0
- data/ext/gyp/test/win/gyptest-cl-warning-level.py +41 -0
- data/ext/gyp/test/win/gyptest-command-quote.py +42 -0
- data/ext/gyp/test/win/gyptest-crosscompile-ar.py +29 -0
- data/ext/gyp/test/win/gyptest-lib-ltcg.py +22 -0
- data/ext/gyp/test/win/gyptest-link-additional-deps.py +22 -0
- data/ext/gyp/test/win/gyptest-link-additional-options.py +22 -0
- data/ext/gyp/test/win/gyptest-link-aslr.py +35 -0
- data/ext/gyp/test/win/gyptest-link-base-address.py +62 -0
- data/ext/gyp/test/win/gyptest-link-debug-info.py +26 -0
- data/ext/gyp/test/win/gyptest-link-default-libs.py +22 -0
- data/ext/gyp/test/win/gyptest-link-deffile.py +43 -0
- data/ext/gyp/test/win/gyptest-link-defrelink.py +56 -0
- data/ext/gyp/test/win/gyptest-link-delay-load-dlls.py +35 -0
- data/ext/gyp/test/win/gyptest-link-embed-manifest.py +100 -0
- data/ext/gyp/test/win/gyptest-link-enable-uac.py +104 -0
- data/ext/gyp/test/win/gyptest-link-enable-winrt-app-revision.py +43 -0
- data/ext/gyp/test/win/gyptest-link-enable-winrt-target-platform-version.py +47 -0
- data/ext/gyp/test/win/gyptest-link-enable-winrt.py +37 -0
- data/ext/gyp/test/win/gyptest-link-entrypointsymbol.py +24 -0
- data/ext/gyp/test/win/gyptest-link-fixed-base.py +40 -0
- data/ext/gyp/test/win/gyptest-link-force-symbol-reference.py +26 -0
- data/ext/gyp/test/win/gyptest-link-generate-manifest.py +127 -0
- data/ext/gyp/test/win/gyptest-link-incremental.py +37 -0
- data/ext/gyp/test/win/gyptest-link-large-address-aware.py +35 -0
- data/ext/gyp/test/win/gyptest-link-large-pdb.py +76 -0
- data/ext/gyp/test/win/gyptest-link-library-adjust.py +21 -0
- data/ext/gyp/test/win/gyptest-link-library-directories.py +35 -0
- data/ext/gyp/test/win/gyptest-link-ltcg.py +44 -0
- data/ext/gyp/test/win/gyptest-link-mapfile.py +44 -0
- data/ext/gyp/test/win/gyptest-link-nodefaultlib.py +24 -0
- data/ext/gyp/test/win/gyptest-link-noimportlib.py +30 -0
- data/ext/gyp/test/win/gyptest-link-nxcompat.py +37 -0
- data/ext/gyp/test/win/gyptest-link-opt-icf.py +41 -0
- data/ext/gyp/test/win/gyptest-link-opt-ref.py +40 -0
- data/ext/gyp/test/win/gyptest-link-ordering.py +103 -0
- data/ext/gyp/test/win/gyptest-link-outputfile.py +28 -0
- data/ext/gyp/test/win/gyptest-link-pdb-no-output.py +25 -0
- data/ext/gyp/test/win/gyptest-link-pdb-output.py +33 -0
- data/ext/gyp/test/win/gyptest-link-pdb.py +35 -0
- data/ext/gyp/test/win/gyptest-link-pgo.py +75 -0
- data/ext/gyp/test/win/gyptest-link-profile.py +37 -0
- data/ext/gyp/test/win/gyptest-link-restat-importlib.py +47 -0
- data/ext/gyp/test/win/gyptest-link-safeseh.py +46 -0
- data/ext/gyp/test/win/gyptest-link-shard.py +30 -0
- data/ext/gyp/test/win/gyptest-link-stacksize.py +62 -0
- data/ext/gyp/test/win/gyptest-link-subsystem.py +38 -0
- data/ext/gyp/test/win/gyptest-link-target-machine.py +28 -0
- data/ext/gyp/test/win/gyptest-link-tsaware.py +33 -0
- data/ext/gyp/test/win/gyptest-link-uldi-depending-on-module.py +24 -0
- data/ext/gyp/test/win/gyptest-link-uldi.py +28 -0
- data/ext/gyp/test/win/gyptest-link-unsupported-manifest.py +27 -0
- data/ext/gyp/test/win/gyptest-link-update-manifest.py +104 -0
- data/ext/gyp/test/win/gyptest-link-warnings-as-errors.py +24 -0
- data/ext/gyp/test/win/gyptest-long-command-line.py +23 -0
- data/ext/gyp/test/win/gyptest-macro-projectname.py +24 -0
- data/ext/gyp/test/win/gyptest-macro-targetext.py +26 -0
- data/ext/gyp/test/win/gyptest-macro-targetfilename.py +37 -0
- data/ext/gyp/test/win/gyptest-macro-targetname.py +29 -0
- data/ext/gyp/test/win/gyptest-macro-targetpath.py +30 -0
- data/ext/gyp/test/win/gyptest-macro-vcinstalldir.py +24 -0
- data/ext/gyp/test/win/gyptest-macros-containing-gyp.py +21 -0
- data/ext/gyp/test/win/gyptest-macros-in-inputs-and-outputs.py +27 -0
- data/ext/gyp/test/win/gyptest-midl-excluded.py +22 -0
- data/ext/gyp/test/win/gyptest-midl-includedirs.py +21 -0
- data/ext/gyp/test/win/gyptest-midl-rules.py +28 -0
- data/ext/gyp/test/win/gyptest-ml-safeseh.py +22 -0
- data/ext/gyp/test/win/gyptest-quoting-commands.py +25 -0
- data/ext/gyp/test/win/gyptest-rc-build.py +29 -0
- data/ext/gyp/test/win/gyptest-sys.py +27 -0
- data/ext/gyp/test/win/gyptest-system-include.py +21 -0
- data/ext/gyp/test/win/idl-excluded/bad.idl +6 -0
- data/ext/gyp/test/win/idl-excluded/copy-file.py +11 -0
- data/ext/gyp/test/win/idl-excluded/idl-excluded.gyp +58 -0
- data/ext/gyp/test/win/idl-excluded/program.cc +7 -0
- data/ext/gyp/test/win/idl-includedirs/hello.cc +7 -0
- data/ext/gyp/test/win/idl-includedirs/idl-includedirs.gyp +26 -0
- data/ext/gyp/test/win/idl-includedirs/subdir/bar.idl +13 -0
- data/ext/gyp/test/win/idl-includedirs/subdir/foo.idl +14 -0
- data/ext/gyp/test/win/idl-rules/Window.idl +9 -0
- data/ext/gyp/test/win/idl-rules/basic-idl.gyp +67 -0
- data/ext/gyp/test/win/idl-rules/history_indexer.idl +17 -0
- data/ext/gyp/test/win/idl-rules/history_indexer_user.cc +15 -0
- data/ext/gyp/test/win/idl-rules/idl_compiler.py +17 -0
- data/ext/gyp/test/win/importlib/dll_no_exports.cc +9 -0
- data/ext/gyp/test/win/importlib/has-exports.cc +10 -0
- data/ext/gyp/test/win/importlib/hello.cc +9 -0
- data/ext/gyp/test/win/importlib/importlib.gyp +30 -0
- data/ext/gyp/test/win/importlib/noimplib.gyp +16 -0
- data/ext/gyp/test/win/large-pdb/dllmain.cc +9 -0
- data/ext/gyp/test/win/large-pdb/large-pdb.gyp +98 -0
- data/ext/gyp/test/win/large-pdb/main.cc +7 -0
- data/ext/gyp/test/win/lib-crosscompile/answer.cc +9 -0
- data/ext/gyp/test/win/lib-crosscompile/answer.h +5 -0
- data/ext/gyp/test/win/lib-crosscompile/use_host_ar.gyp +17 -0
- data/ext/gyp/test/win/lib-flags/answer.cc +9 -0
- data/ext/gyp/test/win/lib-flags/answer.h +5 -0
- data/ext/gyp/test/win/lib-flags/ltcg.gyp +21 -0
- data/ext/gyp/test/win/linker-flags/a/x.cc +7 -0
- data/ext/gyp/test/win/linker-flags/a/z.cc +7 -0
- data/ext/gyp/test/win/linker-flags/additional-deps.cc +10 -0
- data/ext/gyp/test/win/linker-flags/additional-deps.gyp +30 -0
- data/ext/gyp/test/win/linker-flags/additional-options.gyp +29 -0
- data/ext/gyp/test/win/linker-flags/aslr.gyp +35 -0
- data/ext/gyp/test/win/linker-flags/b/y.cc +7 -0
- data/ext/gyp/test/win/linker-flags/base-address.gyp +38 -0
- data/ext/gyp/test/win/linker-flags/debug-info.gyp +28 -0
- data/ext/gyp/test/win/linker-flags/deffile-multiple.gyp +17 -0
- data/ext/gyp/test/win/linker-flags/deffile.cc +13 -0
- data/ext/gyp/test/win/linker-flags/deffile.def +8 -0
- data/ext/gyp/test/win/linker-flags/deffile.gyp +38 -0
- data/ext/gyp/test/win/linker-flags/delay-load-dlls.gyp +35 -0
- data/ext/gyp/test/win/linker-flags/delay-load.cc +10 -0
- data/ext/gyp/test/win/linker-flags/embed-manifest.gyp +109 -0
- data/ext/gyp/test/win/linker-flags/enable-uac.gyp +45 -0
- data/ext/gyp/test/win/linker-flags/entrypointsymbol.cc +13 -0
- data/ext/gyp/test/win/linker-flags/entrypointsymbol.gyp +28 -0
- data/ext/gyp/test/win/linker-flags/extra.manifest +11 -0
- data/ext/gyp/test/win/linker-flags/extra2.manifest +11 -0
- data/ext/gyp/test/win/linker-flags/fixed-base.gyp +52 -0
- data/ext/gyp/test/win/linker-flags/force-symbol-reference.gyp +39 -0
- data/ext/gyp/test/win/linker-flags/generate-manifest.gyp +166 -0
- data/ext/gyp/test/win/linker-flags/hello.cc +7 -0
- data/ext/gyp/test/win/linker-flags/incremental.gyp +65 -0
- data/ext/gyp/test/win/linker-flags/inline_test.cc +12 -0
- data/ext/gyp/test/win/linker-flags/inline_test.h +5 -0
- data/ext/gyp/test/win/linker-flags/inline_test_main.cc +15 -0
- data/ext/gyp/test/win/linker-flags/large-address-aware.gyp +28 -0
- data/ext/gyp/test/win/linker-flags/library-adjust.cc +10 -0
- data/ext/gyp/test/win/linker-flags/library-adjust.gyp +16 -0
- data/ext/gyp/test/win/linker-flags/library-directories-define.cc +7 -0
- data/ext/gyp/test/win/linker-flags/library-directories-reference.cc +10 -0
- data/ext/gyp/test/win/linker-flags/library-directories.gyp +42 -0
- data/ext/gyp/test/win/linker-flags/link-ordering.gyp +95 -0
- data/ext/gyp/test/win/linker-flags/link-warning.cc +10 -0
- data/ext/gyp/test/win/linker-flags/ltcg.gyp +42 -0
- data/ext/gyp/test/win/linker-flags/main-crt.c +8 -0
- data/ext/gyp/test/win/linker-flags/manifest-in-comment.cc +13 -0
- data/ext/gyp/test/win/linker-flags/mapfile.cc +12 -0
- data/ext/gyp/test/win/linker-flags/mapfile.gyp +45 -0
- data/ext/gyp/test/win/linker-flags/no-default-libs.cc +18 -0
- data/ext/gyp/test/win/linker-flags/no-default-libs.gyp +13 -0
- data/ext/gyp/test/win/linker-flags/nodefaultlib.cc +13 -0
- data/ext/gyp/test/win/linker-flags/nodefaultlib.gyp +30 -0
- data/ext/gyp/test/win/linker-flags/nxcompat.gyp +35 -0
- data/ext/gyp/test/win/linker-flags/opt-icf.cc +29 -0
- data/ext/gyp/test/win/linker-flags/opt-icf.gyp +63 -0
- data/ext/gyp/test/win/linker-flags/opt-ref.cc +11 -0
- data/ext/gyp/test/win/linker-flags/opt-ref.gyp +56 -0
- data/ext/gyp/test/win/linker-flags/outputfile.gyp +58 -0
- data/ext/gyp/test/win/linker-flags/pdb-output.gyp +49 -0
- data/ext/gyp/test/win/linker-flags/pgo.gyp +143 -0
- data/ext/gyp/test/win/linker-flags/profile.gyp +50 -0
- data/ext/gyp/test/win/linker-flags/program-database.gyp +40 -0
- data/ext/gyp/test/win/linker-flags/safeseh.gyp +79 -0
- data/ext/gyp/test/win/linker-flags/safeseh_hello.cc +11 -0
- data/ext/gyp/test/win/linker-flags/safeseh_zero.asm +10 -0
- data/ext/gyp/test/win/linker-flags/safeseh_zero64.asm +9 -0
- data/ext/gyp/test/win/linker-flags/stacksize.gyp +44 -0
- data/ext/gyp/test/win/linker-flags/subdir/library.gyp +13 -0
- data/ext/gyp/test/win/linker-flags/subsystem-windows.cc +9 -0
- data/ext/gyp/test/win/linker-flags/subsystem.gyp +70 -0
- data/ext/gyp/test/win/linker-flags/target-machine.gyp +48 -0
- data/ext/gyp/test/win/linker-flags/tsaware.gyp +28 -0
- data/ext/gyp/test/win/linker-flags/unsupported-manifest.gyp +13 -0
- data/ext/gyp/test/win/linker-flags/update_pgd.py +35 -0
- data/ext/gyp/test/win/linker-flags/warn-as-error.gyp +33 -0
- data/ext/gyp/test/win/linker-flags/x.cc +7 -0
- data/ext/gyp/test/win/linker-flags/y.cc +7 -0
- data/ext/gyp/test/win/linker-flags/z.cc +7 -0
- data/ext/gyp/test/win/long-command-line/function.cc +7 -0
- data/ext/gyp/test/win/long-command-line/hello.cc +7 -0
- data/ext/gyp/test/win/long-command-line/long-command-line.gyp +54 -0
- data/ext/gyp/test/win/ml-safeseh/a.asm +10 -0
- data/ext/gyp/test/win/ml-safeseh/hello.cc +11 -0
- data/ext/gyp/test/win/ml-safeseh/ml-safeseh.gyp +24 -0
- data/ext/gyp/test/win/precompiled/gyptest-all.py +21 -0
- data/ext/gyp/test/win/precompiled/hello.c +14 -0
- data/ext/gyp/test/win/precompiled/hello.gyp +28 -0
- data/ext/gyp/test/win/precompiled/hello2.c +13 -0
- data/ext/gyp/test/win/precompiled/precomp.c +8 -0
- data/ext/gyp/test/win/rc-build/Resource.h +26 -0
- data/ext/gyp/test/win/rc-build/hello.cpp +30 -0
- data/ext/gyp/test/win/rc-build/hello.gyp +92 -0
- data/ext/gyp/test/win/rc-build/hello.h +3 -0
- data/ext/gyp/test/win/rc-build/hello.ico +0 -0
- data/ext/gyp/test/win/rc-build/hello.rc +86 -0
- data/ext/gyp/test/win/rc-build/hello3.rc +87 -0
- data/ext/gyp/test/win/rc-build/small.ico +0 -0
- data/ext/gyp/test/win/rc-build/subdir/hello2.rc +87 -0
- data/ext/gyp/test/win/rc-build/subdir/include.h +1 -0
- data/ext/gyp/test/win/rc-build/targetver.h +24 -0
- data/ext/gyp/test/win/shard/hello.cc +7 -0
- data/ext/gyp/test/win/shard/hello1.cc +7 -0
- data/ext/gyp/test/win/shard/hello2.cc +7 -0
- data/ext/gyp/test/win/shard/hello3.cc +7 -0
- data/ext/gyp/test/win/shard/hello4.cc +7 -0
- data/ext/gyp/test/win/shard/shard.gyp +31 -0
- data/ext/gyp/test/win/shard/shard_ref.gyp +41 -0
- data/ext/gyp/test/win/system-include/bar/header.h +0 -0
- data/ext/gyp/test/win/system-include/common/commonheader.h +0 -0
- data/ext/gyp/test/win/system-include/foo/header.h +0 -0
- data/ext/gyp/test/win/system-include/main.cc +4 -0
- data/ext/gyp/test/win/system-include/test.gyp +26 -0
- data/ext/gyp/test/win/uldi/a.cc +7 -0
- data/ext/gyp/test/win/uldi/b.cc +7 -0
- data/ext/gyp/test/win/uldi/dll.cc +6 -0
- data/ext/gyp/test/win/uldi/exe.cc +7 -0
- data/ext/gyp/test/win/uldi/main.cc +10 -0
- data/ext/gyp/test/win/uldi/uldi-depending-on-module.gyp +42 -0
- data/ext/gyp/test/win/uldi/uldi.gyp +45 -0
- data/ext/gyp/test/win/vs-macros/as.py +20 -0
- data/ext/gyp/test/win/vs-macros/containing-gyp.gyp +39 -0
- data/ext/gyp/test/win/vs-macros/do_stuff.py +8 -0
- data/ext/gyp/test/win/vs-macros/hello.cc +7 -0
- data/ext/gyp/test/win/vs-macros/input-output-macros.gyp +32 -0
- data/ext/gyp/test/win/vs-macros/input.S +0 -0
- data/ext/gyp/test/win/vs-macros/projectname.gyp +29 -0
- data/ext/gyp/test/win/vs-macros/stuff.blah +1 -0
- data/ext/gyp/test/win/vs-macros/targetext.gyp +59 -0
- data/ext/gyp/test/win/vs-macros/targetfilename.gyp +59 -0
- data/ext/gyp/test/win/vs-macros/targetname.gyp +52 -0
- data/ext/gyp/test/win/vs-macros/targetpath.gyp +59 -0
- data/ext/gyp/test/win/vs-macros/test_exists.py +10 -0
- data/ext/gyp/test/win/vs-macros/vcinstalldir.gyp +41 -0
- data/ext/gyp/test/win/win-driver-target-type/win-driver-target-type.c +10 -0
- data/ext/gyp/test/win/win-driver-target-type/win-driver-target-type.gyp +32 -0
- data/ext/gyp/test/win/win-driver-target-type/win-driver-target-type.h +13 -0
- data/ext/gyp/test/win/win-driver-target-type/win-driver-target-type.rc +14 -0
- data/ext/gyp/test/win/win-tool/copies_readonly_files.gyp +29 -0
- data/ext/gyp/test/win/win-tool/gyptest-win-tool-handles-readonly-files.py +55 -0
- data/ext/gyp/test/win/winrt-app-type-revision/dllmain.cc +30 -0
- data/ext/gyp/test/win/winrt-app-type-revision/winrt-app-type-revison.gyp +43 -0
- data/ext/gyp/test/win/winrt-target-platform-version/dllmain.cc +30 -0
- data/ext/gyp/test/win/winrt-target-platform-version/winrt-target-platform-version.gyp +49 -0
- data/ext/gyp/test/xcode-ninja/list_excluded/gyptest-all.py +49 -0
- data/ext/gyp/test/xcode-ninja/list_excluded/hello.cpp +7 -0
- data/ext/gyp/test/xcode-ninja/list_excluded/hello_exclude.gyp +19 -0
- data/ext/gyp/test/xcode-ninja/list_excluded/hello_excluded.cpp +7 -0
- data/ext/gyp/tools/README +15 -0
- data/ext/gyp/tools/Xcode/README +5 -0
- data/ext/gyp/tools/Xcode/Specifications/gyp.pbfilespec +27 -0
- data/ext/gyp/tools/Xcode/Specifications/gyp.xclangspec +226 -0
- data/ext/gyp/tools/emacs/README +12 -0
- data/ext/gyp/tools/emacs/gyp-tests.el +63 -0
- data/ext/gyp/tools/emacs/gyp.el +275 -0
- data/ext/gyp/tools/emacs/run-unit-tests.sh +7 -0
- data/ext/gyp/tools/emacs/testdata/media.gyp +1105 -0
- data/ext/gyp/tools/emacs/testdata/media.gyp.fontified +1107 -0
- data/ext/gyp/tools/graphviz.py +102 -0
- data/ext/gyp/tools/pretty_gyp.py +156 -0
- data/ext/gyp/tools/pretty_sln.py +171 -0
- data/ext/gyp/tools/pretty_vcproj.py +337 -0
- data/ext/libuv/.gitattributes +1 -0
- data/ext/libuv/.github/ISSUE_TEMPLATE.md +13 -0
- data/ext/libuv/.github/stale.yml +22 -0
- data/ext/libuv/.gitignore +80 -0
- data/ext/libuv/.mailmap +50 -0
- data/ext/libuv/AUTHORS +415 -0
- data/ext/libuv/CMakeLists.txt +430 -0
- data/ext/libuv/CONTRIBUTING.md +172 -0
- data/ext/libuv/ChangeLog +4548 -0
- data/ext/libuv/LICENSE +70 -0
- data/ext/libuv/LICENSE-docs +396 -0
- data/ext/libuv/MAINTAINERS.md +48 -0
- data/ext/libuv/Makefile.am +548 -0
- data/ext/libuv/README.md +431 -0
- data/ext/libuv/SUPPORTED_PLATFORMS.md +68 -0
- data/ext/libuv/android-configure-arm +23 -0
- data/ext/libuv/android-configure-arm64 +23 -0
- data/ext/libuv/android-configure-x86 +23 -0
- data/ext/libuv/android-configure-x86_64 +25 -0
- data/ext/libuv/appveyor.yml +32 -0
- data/ext/libuv/autogen.sh +46 -0
- data/ext/libuv/common.gypi +213 -0
- data/ext/libuv/configure.ac +82 -0
- data/ext/libuv/docs/Makefile +183 -0
- data/ext/libuv/docs/code/cgi/main.c +81 -0
- data/ext/libuv/docs/code/cgi/tick.c +13 -0
- data/ext/libuv/docs/code/detach/main.c +31 -0
- data/ext/libuv/docs/code/dns/main.c +80 -0
- data/ext/libuv/docs/code/helloworld/main.c +15 -0
- data/ext/libuv/docs/code/idle-basic/main.c +24 -0
- data/ext/libuv/docs/code/idle-compute/main.c +43 -0
- data/ext/libuv/docs/code/interfaces/main.c +33 -0
- data/ext/libuv/docs/code/locks/main.c +57 -0
- data/ext/libuv/docs/code/multi-echo-server/hammer.js +20 -0
- data/ext/libuv/docs/code/multi-echo-server/main.c +114 -0
- data/ext/libuv/docs/code/multi-echo-server/worker.c +88 -0
- data/ext/libuv/docs/code/onchange/main.c +44 -0
- data/ext/libuv/docs/code/pipe-echo-server/main.c +94 -0
- data/ext/libuv/docs/code/plugin/hello.c +5 -0
- data/ext/libuv/docs/code/plugin/main.c +39 -0
- data/ext/libuv/docs/code/plugin/plugin.h +7 -0
- data/ext/libuv/docs/code/proc-streams/main.c +49 -0
- data/ext/libuv/docs/code/proc-streams/test.c +8 -0
- data/ext/libuv/docs/code/progress/main.c +47 -0
- data/ext/libuv/docs/code/queue-cancel/main.c +59 -0
- data/ext/libuv/docs/code/queue-work/main.c +44 -0
- data/ext/libuv/docs/code/ref-timer/main.c +29 -0
- data/ext/libuv/docs/code/signal/main.c +66 -0
- data/ext/libuv/docs/code/spawn/main.c +36 -0
- data/ext/libuv/docs/code/tcp-echo-server/main.c +87 -0
- data/ext/libuv/docs/code/thread-create/main.c +36 -0
- data/ext/libuv/docs/code/tty/main.c +29 -0
- data/ext/libuv/docs/code/tty-gravity/main.c +48 -0
- data/ext/libuv/docs/code/udp-dhcp/main.c +127 -0
- data/ext/libuv/docs/code/uvcat/main.c +63 -0
- data/ext/libuv/docs/code/uvstop/main.c +33 -0
- data/ext/libuv/docs/code/uvtee/main.c +80 -0
- data/ext/libuv/docs/code/uvwget/main.c +166 -0
- data/ext/libuv/docs/make.bat +243 -0
- data/ext/libuv/docs/src/api.rst +35 -0
- data/ext/libuv/docs/src/async.rst +65 -0
- data/ext/libuv/docs/src/check.rst +46 -0
- data/ext/libuv/docs/src/conf.py +348 -0
- data/ext/libuv/docs/src/design.rst +140 -0
- data/ext/libuv/docs/src/dll.rst +44 -0
- data/ext/libuv/docs/src/dns.rst +108 -0
- data/ext/libuv/docs/src/errors.rst +365 -0
- data/ext/libuv/docs/src/fs.rst +689 -0
- data/ext/libuv/docs/src/fs_event.rst +132 -0
- data/ext/libuv/docs/src/fs_poll.rst +77 -0
- data/ext/libuv/docs/src/guide/about.rst +22 -0
- data/ext/libuv/docs/src/guide/basics.rst +219 -0
- data/ext/libuv/docs/src/guide/eventloops.rst +48 -0
- data/ext/libuv/docs/src/guide/filesystem.rst +330 -0
- data/ext/libuv/docs/src/guide/introduction.rst +75 -0
- data/ext/libuv/docs/src/guide/networking.rst +250 -0
- data/ext/libuv/docs/src/guide/processes.rst +406 -0
- data/ext/libuv/docs/src/guide/threads.rst +385 -0
- data/ext/libuv/docs/src/guide/utilities.rst +437 -0
- data/ext/libuv/docs/src/guide.rst +22 -0
- data/ext/libuv/docs/src/handle.rst +283 -0
- data/ext/libuv/docs/src/idle.rst +54 -0
- data/ext/libuv/docs/src/index.rst +62 -0
- data/ext/libuv/docs/src/loop.rst +238 -0
- data/ext/libuv/docs/src/migration_010_100.rst +244 -0
- data/ext/libuv/docs/src/misc.rst +702 -0
- data/ext/libuv/docs/src/pipe.rst +116 -0
- data/ext/libuv/docs/src/poll.rst +121 -0
- data/ext/libuv/docs/src/prepare.rst +46 -0
- data/ext/libuv/docs/src/process.rst +250 -0
- data/ext/libuv/docs/src/request.rst +116 -0
- data/ext/libuv/docs/src/signal.rst +101 -0
- data/ext/libuv/docs/src/sphinx-plugins/manpage.py +45 -0
- data/ext/libuv/docs/src/static/architecture.png +0 -0
- data/ext/libuv/docs/src/static/diagrams.key/Data/st0-311.jpg +0 -0
- data/ext/libuv/docs/src/static/diagrams.key/Data/st1-475.jpg +0 -0
- data/ext/libuv/docs/src/static/diagrams.key/Index.zip +0 -0
- data/ext/libuv/docs/src/static/diagrams.key/Metadata/BuildVersionHistory.plist +8 -0
- data/ext/libuv/docs/src/static/diagrams.key/Metadata/DocumentIdentifier +1 -0
- data/ext/libuv/docs/src/static/diagrams.key/Metadata/Properties.plist +0 -0
- data/ext/libuv/docs/src/static/diagrams.key/preview-micro.jpg +0 -0
- data/ext/libuv/docs/src/static/diagrams.key/preview-web.jpg +0 -0
- data/ext/libuv/docs/src/static/diagrams.key/preview.jpg +0 -0
- data/ext/libuv/docs/src/static/favicon.ico +0 -0
- data/ext/libuv/docs/src/static/logo.png +0 -0
- data/ext/libuv/docs/src/static/loop_iteration.png +0 -0
- data/ext/libuv/docs/src/stream.rst +237 -0
- data/ext/libuv/docs/src/tcp.rst +125 -0
- data/ext/libuv/docs/src/threading.rst +197 -0
- data/ext/libuv/docs/src/threadpool.rst +69 -0
- data/ext/libuv/docs/src/timer.rst +81 -0
- data/ext/libuv/docs/src/tty.rst +139 -0
- data/ext/libuv/docs/src/udp.rst +390 -0
- data/ext/libuv/docs/src/upgrading.rst +11 -0
- data/ext/libuv/docs/src/version.rst +60 -0
- data/ext/libuv/gyp_uv.py +73 -0
- data/ext/libuv/img/banner.png +0 -0
- data/ext/libuv/img/logos.svg +152 -0
- data/ext/libuv/include/uv/aix.h +32 -0
- data/ext/libuv/include/uv/android-ifaddrs.h +54 -0
- data/ext/libuv/include/uv/bsd.h +34 -0
- data/ext/libuv/include/uv/darwin.h +61 -0
- data/ext/libuv/include/uv/errno.h +448 -0
- data/ext/libuv/include/uv/linux.h +34 -0
- data/ext/libuv/include/uv/os390.h +33 -0
- data/ext/libuv/include/uv/posix.h +31 -0
- data/ext/libuv/include/uv/stdint-msvc2008.h +247 -0
- data/ext/libuv/include/uv/sunos.h +44 -0
- data/ext/libuv/include/uv/threadpool.h +37 -0
- data/ext/libuv/include/uv/tree.h +768 -0
- data/ext/libuv/include/uv/unix.h +505 -0
- data/ext/libuv/include/uv/version.h +43 -0
- data/ext/libuv/include/uv/win.h +691 -0
- data/ext/libuv/include/uv.h +1782 -0
- data/ext/libuv/libuv.pc.in +12 -0
- data/ext/libuv/m4/.gitignore +4 -0
- data/ext/libuv/m4/as_case.m4 +21 -0
- data/ext/libuv/m4/libuv-check-flags.m4 +319 -0
- data/ext/libuv/src/fs-poll.c +287 -0
- data/ext/libuv/src/heap-inl.h +245 -0
- data/ext/libuv/src/idna.c +291 -0
- data/ext/libuv/src/idna.h +31 -0
- data/ext/libuv/src/inet.c +302 -0
- data/ext/libuv/src/queue.h +108 -0
- data/ext/libuv/src/random.c +123 -0
- data/ext/libuv/src/strscpy.c +17 -0
- data/ext/libuv/src/strscpy.h +18 -0
- data/ext/libuv/src/threadpool.c +388 -0
- data/ext/libuv/src/timer.c +181 -0
- data/ext/libuv/src/unix/aix-common.c +337 -0
- data/ext/libuv/src/unix/aix.c +1066 -0
- data/ext/libuv/src/unix/android-ifaddrs.c +712 -0
- data/ext/libuv/src/unix/async.c +298 -0
- data/ext/libuv/src/unix/atomic-ops.h +59 -0
- data/ext/libuv/src/unix/bsd-ifaddrs.c +161 -0
- data/ext/libuv/src/unix/bsd-proctitle.c +93 -0
- data/ext/libuv/src/unix/core.c +1571 -0
- data/ext/libuv/src/unix/cygwin.c +53 -0
- data/ext/libuv/src/unix/darwin-proctitle.c +202 -0
- data/ext/libuv/src/unix/darwin.c +225 -0
- data/ext/libuv/src/unix/dl.c +80 -0
- data/ext/libuv/src/unix/freebsd.c +290 -0
- data/ext/libuv/src/unix/fs.c +2044 -0
- data/ext/libuv/src/unix/fsevents.c +924 -0
- data/ext/libuv/src/unix/getaddrinfo.c +255 -0
- data/ext/libuv/src/unix/getnameinfo.c +121 -0
- data/ext/libuv/src/unix/haiku.c +167 -0
- data/ext/libuv/src/unix/ibmi.c +249 -0
- data/ext/libuv/src/unix/internal.h +331 -0
- data/ext/libuv/src/unix/kqueue.c +544 -0
- data/ext/libuv/src/unix/linux-core.c +1091 -0
- data/ext/libuv/src/unix/linux-inotify.c +354 -0
- data/ext/libuv/src/unix/linux-syscalls.c +394 -0
- data/ext/libuv/src/unix/linux-syscalls.h +153 -0
- data/ext/libuv/src/unix/loop-watcher.c +68 -0
- data/ext/libuv/src/unix/loop.c +194 -0
- data/ext/libuv/src/unix/netbsd.c +259 -0
- data/ext/libuv/src/unix/no-fsevents.c +42 -0
- data/ext/libuv/src/unix/no-proctitle.c +42 -0
- data/ext/libuv/src/unix/openbsd.c +244 -0
- data/ext/libuv/src/unix/os390-syscalls.c +519 -0
- data/ext/libuv/src/unix/os390-syscalls.h +68 -0
- data/ext/libuv/src/unix/os390.c +1003 -0
- data/ext/libuv/src/unix/pipe.c +377 -0
- data/ext/libuv/src/unix/poll.c +150 -0
- data/ext/libuv/src/unix/posix-hrtime.c +35 -0
- data/ext/libuv/src/unix/posix-poll.c +336 -0
- data/ext/libuv/src/unix/process.c +603 -0
- data/ext/libuv/src/unix/procfs-exepath.c +45 -0
- data/ext/libuv/src/unix/proctitle.c +132 -0
- data/ext/libuv/src/unix/pthread-fixes.c +56 -0
- data/ext/libuv/src/unix/random-devurandom.c +93 -0
- data/ext/libuv/src/unix/random-getentropy.c +57 -0
- data/ext/libuv/src/unix/random-getrandom.c +88 -0
- data/ext/libuv/src/unix/random-sysctl-linux.c +99 -0
- data/ext/libuv/src/unix/signal.c +577 -0
- data/ext/libuv/src/unix/spinlock.h +53 -0
- data/ext/libuv/src/unix/stream.c +1697 -0
- data/ext/libuv/src/unix/sunos.c +836 -0
- data/ext/libuv/src/unix/sysinfo-loadavg.c +36 -0
- data/ext/libuv/src/unix/sysinfo-memory.c +42 -0
- data/ext/libuv/src/unix/tcp.c +450 -0
- data/ext/libuv/src/unix/thread.c +852 -0
- data/ext/libuv/src/unix/tty.c +381 -0
- data/ext/libuv/src/unix/udp.c +1136 -0
- data/ext/libuv/src/uv-common.c +812 -0
- data/ext/libuv/src/uv-common.h +326 -0
- data/ext/libuv/src/uv-data-getter-setters.c +98 -0
- data/ext/libuv/src/version.c +45 -0
- data/ext/libuv/src/win/async.c +98 -0
- data/ext/libuv/src/win/atomicops-inl.h +57 -0
- data/ext/libuv/src/win/core.c +657 -0
- data/ext/libuv/src/win/detect-wakeup.c +35 -0
- data/ext/libuv/src/win/dl.c +136 -0
- data/ext/libuv/src/win/error.c +172 -0
- data/ext/libuv/src/win/fs-event.c +589 -0
- data/ext/libuv/src/win/fs-fd-hash-inl.h +178 -0
- data/ext/libuv/src/win/fs.c +3238 -0
- data/ext/libuv/src/win/getaddrinfo.c +463 -0
- data/ext/libuv/src/win/getnameinfo.c +157 -0
- data/ext/libuv/src/win/handle-inl.h +180 -0
- data/ext/libuv/src/win/handle.c +162 -0
- data/ext/libuv/src/win/internal.h +344 -0
- data/ext/libuv/src/win/loop-watcher.c +122 -0
- data/ext/libuv/src/win/pipe.c +2386 -0
- data/ext/libuv/src/win/poll.c +643 -0
- data/ext/libuv/src/win/process-stdio.c +512 -0
- data/ext/libuv/src/win/process.c +1282 -0
- data/ext/libuv/src/win/req-inl.h +221 -0
- data/ext/libuv/src/win/signal.c +277 -0
- data/ext/libuv/src/win/snprintf.c +42 -0
- data/ext/libuv/src/win/stream-inl.h +54 -0
- data/ext/libuv/src/win/stream.c +243 -0
- data/ext/libuv/src/win/tcp.c +1520 -0
- data/ext/libuv/src/win/thread.c +520 -0
- data/ext/libuv/src/win/tty.c +2348 -0
- data/ext/libuv/src/win/udp.c +1185 -0
- data/ext/libuv/src/win/util.c +1879 -0
- data/ext/libuv/src/win/winapi.c +149 -0
- data/ext/libuv/src/win/winapi.h +4751 -0
- data/ext/libuv/src/win/winsock.c +575 -0
- data/ext/libuv/src/win/winsock.h +201 -0
- data/ext/libuv/test/benchmark-async-pummel.c +119 -0
- data/ext/libuv/test/benchmark-async.c +141 -0
- data/ext/libuv/test/benchmark-fs-stat.c +136 -0
- data/ext/libuv/test/benchmark-getaddrinfo.c +92 -0
- data/ext/libuv/test/benchmark-list.h +163 -0
- data/ext/libuv/test/benchmark-loop-count.c +92 -0
- data/ext/libuv/test/benchmark-million-async.c +112 -0
- data/ext/libuv/test/benchmark-million-timers.c +86 -0
- data/ext/libuv/test/benchmark-multi-accept.c +447 -0
- data/ext/libuv/test/benchmark-ping-pongs.c +221 -0
- data/ext/libuv/test/benchmark-pound.c +351 -0
- data/ext/libuv/test/benchmark-pump.c +476 -0
- data/ext/libuv/test/benchmark-sizes.c +46 -0
- data/ext/libuv/test/benchmark-spawn.c +164 -0
- data/ext/libuv/test/benchmark-tcp-write-batch.c +144 -0
- data/ext/libuv/test/benchmark-thread.c +64 -0
- data/ext/libuv/test/benchmark-udp-pummel.c +243 -0
- data/ext/libuv/test/blackhole-server.c +121 -0
- data/ext/libuv/test/dns-server.c +340 -0
- data/ext/libuv/test/echo-server.c +382 -0
- data/ext/libuv/test/fixtures/empty_file +0 -0
- data/ext/libuv/test/fixtures/load_error.node +1 -0
- data/ext/libuv/test/fixtures/lorem_ipsum.txt +1 -0
- data/ext/libuv/test/run-benchmarks.c +65 -0
- data/ext/libuv/test/run-tests.c +239 -0
- data/ext/libuv/test/runner-unix.c +450 -0
- data/ext/libuv/test/runner-unix.h +36 -0
- data/ext/libuv/test/runner-win.c +357 -0
- data/ext/libuv/test/runner-win.h +41 -0
- data/ext/libuv/test/runner.c +431 -0
- data/ext/libuv/test/runner.h +176 -0
- data/ext/libuv/test/task.h +238 -0
- data/ext/libuv/test/test-active.c +84 -0
- data/ext/libuv/test/test-async-null-cb.c +64 -0
- data/ext/libuv/test/test-async.c +134 -0
- data/ext/libuv/test/test-barrier.c +148 -0
- data/ext/libuv/test/test-callback-order.c +77 -0
- data/ext/libuv/test/test-callback-stack.c +204 -0
- data/ext/libuv/test/test-close-fd.c +80 -0
- data/ext/libuv/test/test-close-order.c +80 -0
- data/ext/libuv/test/test-condvar.c +267 -0
- data/ext/libuv/test/test-connect-unspecified.c +63 -0
- data/ext/libuv/test/test-connection-fail.c +151 -0
- data/ext/libuv/test/test-cwd-and-chdir.c +58 -0
- data/ext/libuv/test/test-default-loop-close.c +59 -0
- data/ext/libuv/test/test-delayed-accept.c +189 -0
- data/ext/libuv/test/test-dlerror.c +61 -0
- data/ext/libuv/test/test-eintr-handling.c +94 -0
- data/ext/libuv/test/test-embed.c +139 -0
- data/ext/libuv/test/test-emfile.c +121 -0
- data/ext/libuv/test/test-env-vars.c +140 -0
- data/ext/libuv/test/test-error.c +79 -0
- data/ext/libuv/test/test-fail-always.c +29 -0
- data/ext/libuv/test/test-fork.c +683 -0
- data/ext/libuv/test/test-fs-copyfile.c +209 -0
- data/ext/libuv/test/test-fs-event.c +1165 -0
- data/ext/libuv/test/test-fs-fd-hash.c +133 -0
- data/ext/libuv/test/test-fs-open-flags.c +435 -0
- data/ext/libuv/test/test-fs-poll.c +300 -0
- data/ext/libuv/test/test-fs-readdir.c +462 -0
- data/ext/libuv/test/test-fs.c +4238 -0
- data/ext/libuv/test/test-get-currentexe.c +86 -0
- data/ext/libuv/test/test-get-loadavg.c +35 -0
- data/ext/libuv/test/test-get-memory.c +40 -0
- data/ext/libuv/test/test-get-passwd.c +86 -0
- data/ext/libuv/test/test-getaddrinfo.c +191 -0
- data/ext/libuv/test/test-gethostname.c +58 -0
- data/ext/libuv/test/test-getnameinfo.c +101 -0
- data/ext/libuv/test/test-getsockname.c +361 -0
- data/ext/libuv/test/test-getters-setters.c +88 -0
- data/ext/libuv/test/test-gettimeofday.c +39 -0
- data/ext/libuv/test/test-handle-fileno.c +125 -0
- data/ext/libuv/test/test-homedir.c +72 -0
- data/ext/libuv/test/test-hrtime.c +52 -0
- data/ext/libuv/test/test-idle.c +99 -0
- data/ext/libuv/test/test-idna.c +195 -0
- data/ext/libuv/test/test-ip4-addr.c +55 -0
- data/ext/libuv/test/test-ip6-addr.c +171 -0
- data/ext/libuv/test/test-ipc-heavy-traffic-deadlock-bug.c +159 -0
- data/ext/libuv/test/test-ipc-send-recv.c +429 -0
- data/ext/libuv/test/test-ipc.c +974 -0
- data/ext/libuv/test/test-list.h +1064 -0
- data/ext/libuv/test/test-loop-alive.c +67 -0
- data/ext/libuv/test/test-loop-close.c +75 -0
- data/ext/libuv/test/test-loop-configure.c +38 -0
- data/ext/libuv/test/test-loop-handles.c +337 -0
- data/ext/libuv/test/test-loop-stop.c +71 -0
- data/ext/libuv/test/test-loop-time.c +63 -0
- data/ext/libuv/test/test-multiple-listen.c +109 -0
- data/ext/libuv/test/test-mutexes.c +182 -0
- data/ext/libuv/test/test-osx-select.c +140 -0
- data/ext/libuv/test/test-pass-always.c +28 -0
- data/ext/libuv/test/test-ping-pong.c +301 -0
- data/ext/libuv/test/test-pipe-bind-error.c +139 -0
- data/ext/libuv/test/test-pipe-close-stdout-read-stdin.c +112 -0
- data/ext/libuv/test/test-pipe-connect-error.c +95 -0
- data/ext/libuv/test/test-pipe-connect-multiple.c +107 -0
- data/ext/libuv/test/test-pipe-connect-prepare.c +83 -0
- data/ext/libuv/test/test-pipe-getsockname.c +266 -0
- data/ext/libuv/test/test-pipe-pending-instances.c +59 -0
- data/ext/libuv/test/test-pipe-sendmsg.c +172 -0
- data/ext/libuv/test/test-pipe-server-close.c +94 -0
- data/ext/libuv/test/test-pipe-set-fchmod.c +90 -0
- data/ext/libuv/test/test-pipe-set-non-blocking.c +99 -0
- data/ext/libuv/test/test-platform-output.c +170 -0
- data/ext/libuv/test/test-poll-close-doesnt-corrupt-stack.c +114 -0
- data/ext/libuv/test/test-poll-close.c +73 -0
- data/ext/libuv/test/test-poll-closesocket.c +92 -0
- data/ext/libuv/test/test-poll-oob.c +210 -0
- data/ext/libuv/test/test-poll.c +668 -0
- data/ext/libuv/test/test-process-priority.c +83 -0
- data/ext/libuv/test/test-process-title-threadsafe.c +89 -0
- data/ext/libuv/test/test-process-title.c +76 -0
- data/ext/libuv/test/test-queue-foreach-delete.c +204 -0
- data/ext/libuv/test/test-random.c +94 -0
- data/ext/libuv/test/test-ref.c +445 -0
- data/ext/libuv/test/test-run-nowait.c +45 -0
- data/ext/libuv/test/test-run-once.c +48 -0
- data/ext/libuv/test/test-semaphore.c +111 -0
- data/ext/libuv/test/test-shutdown-close.c +108 -0
- data/ext/libuv/test/test-shutdown-eof.c +182 -0
- data/ext/libuv/test/test-shutdown-twice.c +85 -0
- data/ext/libuv/test/test-signal-multiple-loops.c +302 -0
- data/ext/libuv/test/test-signal-pending-on-close.c +94 -0
- data/ext/libuv/test/test-signal.c +325 -0
- data/ext/libuv/test/test-socket-buffer-size.c +77 -0
- data/ext/libuv/test/test-spawn.c +1924 -0
- data/ext/libuv/test/test-stdio-over-pipes.c +256 -0
- data/ext/libuv/test/test-strscpy.c +53 -0
- data/ext/libuv/test/test-tcp-alloc-cb-fail.c +123 -0
- data/ext/libuv/test/test-tcp-bind-error.c +254 -0
- data/ext/libuv/test/test-tcp-bind6-error.c +176 -0
- data/ext/libuv/test/test-tcp-close-accept.c +198 -0
- data/ext/libuv/test/test-tcp-close-reset.c +290 -0
- data/ext/libuv/test/test-tcp-close-while-connecting.c +97 -0
- data/ext/libuv/test/test-tcp-close.c +136 -0
- data/ext/libuv/test/test-tcp-connect-error-after-write.c +98 -0
- data/ext/libuv/test/test-tcp-connect-error.c +73 -0
- data/ext/libuv/test/test-tcp-connect-timeout.c +91 -0
- data/ext/libuv/test/test-tcp-connect6-error.c +71 -0
- data/ext/libuv/test/test-tcp-create-socket-early.c +209 -0
- data/ext/libuv/test/test-tcp-flags.c +52 -0
- data/ext/libuv/test/test-tcp-oob.c +146 -0
- data/ext/libuv/test/test-tcp-open.c +400 -0
- data/ext/libuv/test/test-tcp-read-stop.c +76 -0
- data/ext/libuv/test/test-tcp-shutdown-after-write.c +138 -0
- data/ext/libuv/test/test-tcp-try-write-error.c +109 -0
- data/ext/libuv/test/test-tcp-try-write.c +135 -0
- data/ext/libuv/test/test-tcp-unexpected-read.c +117 -0
- data/ext/libuv/test/test-tcp-write-after-connect.c +72 -0
- data/ext/libuv/test/test-tcp-write-fail.c +115 -0
- data/ext/libuv/test/test-tcp-write-queue-order.c +139 -0
- data/ext/libuv/test/test-tcp-write-to-half-open-connection.c +141 -0
- data/ext/libuv/test/test-tcp-writealot.c +180 -0
- data/ext/libuv/test/test-thread-equal.c +45 -0
- data/ext/libuv/test/test-thread.c +286 -0
- data/ext/libuv/test/test-threadpool-cancel.c +349 -0
- data/ext/libuv/test/test-threadpool.c +76 -0
- data/ext/libuv/test/test-timer-again.c +141 -0
- data/ext/libuv/test/test-timer-from-check.c +80 -0
- data/ext/libuv/test/test-timer.c +343 -0
- data/ext/libuv/test/test-tmpdir.c +82 -0
- data/ext/libuv/test/test-tty-duplicate-key.c +321 -0
- data/ext/libuv/test/test-tty.c +464 -0
- data/ext/libuv/test/test-udp-alloc-cb-fail.c +196 -0
- data/ext/libuv/test/test-udp-bind.c +93 -0
- data/ext/libuv/test/test-udp-connect.c +182 -0
- data/ext/libuv/test/test-udp-create-socket-early.c +135 -0
- data/ext/libuv/test/test-udp-dgram-too-big.c +91 -0
- data/ext/libuv/test/test-udp-ipv6.c +200 -0
- data/ext/libuv/test/test-udp-multicast-interface.c +99 -0
- data/ext/libuv/test/test-udp-multicast-interface6.c +103 -0
- data/ext/libuv/test/test-udp-multicast-join.c +181 -0
- data/ext/libuv/test/test-udp-multicast-join6.c +215 -0
- data/ext/libuv/test/test-udp-multicast-ttl.c +94 -0
- data/ext/libuv/test/test-udp-open.c +350 -0
- data/ext/libuv/test/test-udp-options.c +156 -0
- data/ext/libuv/test/test-udp-send-and-recv.c +212 -0
- data/ext/libuv/test/test-udp-send-hang-loop.c +99 -0
- data/ext/libuv/test/test-udp-send-immediate.c +148 -0
- data/ext/libuv/test/test-udp-send-unreachable.c +150 -0
- data/ext/libuv/test/test-udp-try-send.c +121 -0
- data/ext/libuv/test/test-uname.c +69 -0
- data/ext/libuv/test/test-walk-handles.c +77 -0
- data/ext/libuv/test/test-watcher-cross-stop.c +111 -0
- data/ext/libuv/test/test.gyp +293 -0
- data/ext/libuv/tools/make_dist_html.py +124 -0
- data/ext/libuv/tools/vswhere_usability_wrapper.cmd +33 -0
- data/ext/libuv/uv.gyp +368 -0
- data/ext/libuv/vcbuild.bat +184 -0
- data/lib/mt-libuv/tcp.rb +2 -2
- data/lib/mt-libuv/version.rb +1 -1
- data/mt-libuv.gemspec +26 -26
- metadata +2089 -2
@@ -0,0 +1,330 @@
|
|
1
|
+
Filesystem
|
2
|
+
==========
|
3
|
+
|
4
|
+
Simple filesystem read/write is achieved using the ``uv_fs_*`` functions and the
|
5
|
+
``uv_fs_t`` struct.
|
6
|
+
|
7
|
+
.. note::
|
8
|
+
|
9
|
+
The libuv filesystem operations are different from :doc:`socket operations
|
10
|
+
<networking>`. Socket operations use the non-blocking operations provided
|
11
|
+
by the operating system. Filesystem operations use blocking functions
|
12
|
+
internally, but invoke these functions in a `thread pool`_ and notify
|
13
|
+
watchers registered with the event loop when application interaction is
|
14
|
+
required.
|
15
|
+
|
16
|
+
.. _thread pool: http://docs.libuv.org/en/v1.x/threadpool.html#thread-pool-work-scheduling
|
17
|
+
|
18
|
+
All filesystem functions have two forms - *synchronous* and *asynchronous*.
|
19
|
+
|
20
|
+
The *synchronous* forms automatically get called (and **block**) if the
|
21
|
+
callback is null. The return value of functions is a :ref:`libuv error code
|
22
|
+
<libuv-error-handling>`. This is usually only useful for synchronous calls.
|
23
|
+
The *asynchronous* form is called when a callback is passed and the return
|
24
|
+
value is 0.
|
25
|
+
|
26
|
+
Reading/Writing files
|
27
|
+
---------------------
|
28
|
+
|
29
|
+
A file descriptor is obtained using
|
30
|
+
|
31
|
+
.. code-block:: c
|
32
|
+
|
33
|
+
int uv_fs_open(uv_loop_t* loop, uv_fs_t* req, const char* path, int flags, int mode, uv_fs_cb cb)
|
34
|
+
|
35
|
+
``flags`` and ``mode`` are standard
|
36
|
+
`Unix flags <http://man7.org/linux/man-pages/man2/open.2.html>`_.
|
37
|
+
libuv takes care of converting to the appropriate Windows flags.
|
38
|
+
|
39
|
+
File descriptors are closed using
|
40
|
+
|
41
|
+
.. code-block:: c
|
42
|
+
|
43
|
+
int uv_fs_close(uv_loop_t* loop, uv_fs_t* req, uv_file file, uv_fs_cb cb)
|
44
|
+
|
45
|
+
|
46
|
+
Filesystem operation callbacks have the signature:
|
47
|
+
|
48
|
+
.. code-block:: c
|
49
|
+
|
50
|
+
void callback(uv_fs_t* req);
|
51
|
+
|
52
|
+
Let's see a simple implementation of ``cat``. We start with registering
|
53
|
+
a callback for when the file is opened:
|
54
|
+
|
55
|
+
.. rubric:: uvcat/main.c - opening a file
|
56
|
+
.. literalinclude:: ../../code/uvcat/main.c
|
57
|
+
:linenos:
|
58
|
+
:lines: 41-53
|
59
|
+
:emphasize-lines: 4, 6-7
|
60
|
+
|
61
|
+
The ``result`` field of a ``uv_fs_t`` is the file descriptor in case of the
|
62
|
+
``uv_fs_open`` callback. If the file is successfully opened, we start reading it.
|
63
|
+
|
64
|
+
.. rubric:: uvcat/main.c - read callback
|
65
|
+
.. literalinclude:: ../../code/uvcat/main.c
|
66
|
+
:linenos:
|
67
|
+
:lines: 26-40
|
68
|
+
:emphasize-lines: 2,8,12
|
69
|
+
|
70
|
+
In the case of a read call, you should pass an *initialized* buffer which will
|
71
|
+
be filled with data before the read callback is triggered. The ``uv_fs_*``
|
72
|
+
operations map almost directly to certain POSIX functions, so EOF is indicated
|
73
|
+
in this case by ``result`` being 0. In the case of streams or pipes, the
|
74
|
+
``UV_EOF`` constant would have been passed as a status instead.
|
75
|
+
|
76
|
+
Here you see a common pattern when writing asynchronous programs. The
|
77
|
+
``uv_fs_close()`` call is performed synchronously. *Usually tasks which are
|
78
|
+
one-off, or are done as part of the startup or shutdown stage are performed
|
79
|
+
synchronously, since we are interested in fast I/O when the program is going
|
80
|
+
about its primary task and dealing with multiple I/O sources*. For solo tasks
|
81
|
+
the performance difference usually is negligible and may lead to simpler code.
|
82
|
+
|
83
|
+
Filesystem writing is similarly simple using ``uv_fs_write()``. *Your callback
|
84
|
+
will be triggered after the write is complete*. In our case the callback
|
85
|
+
simply drives the next read. Thus read and write proceed in lockstep via
|
86
|
+
callbacks.
|
87
|
+
|
88
|
+
.. rubric:: uvcat/main.c - write callback
|
89
|
+
.. literalinclude:: ../../code/uvcat/main.c
|
90
|
+
:linenos:
|
91
|
+
:lines: 16-24
|
92
|
+
:emphasize-lines: 6
|
93
|
+
|
94
|
+
.. warning::
|
95
|
+
|
96
|
+
Due to the way filesystems and disk drives are configured for performance,
|
97
|
+
a write that 'succeeds' may not be committed to disk yet.
|
98
|
+
|
99
|
+
We set the dominos rolling in ``main()``:
|
100
|
+
|
101
|
+
.. rubric:: uvcat/main.c
|
102
|
+
.. literalinclude:: ../../code/uvcat/main.c
|
103
|
+
:linenos:
|
104
|
+
:lines: 55-
|
105
|
+
:emphasize-lines: 2
|
106
|
+
|
107
|
+
.. warning::
|
108
|
+
|
109
|
+
The ``uv_fs_req_cleanup()`` function must always be called on filesystem
|
110
|
+
requests to free internal memory allocations in libuv.
|
111
|
+
|
112
|
+
Filesystem operations
|
113
|
+
---------------------
|
114
|
+
|
115
|
+
All the standard filesystem operations like ``unlink``, ``rmdir``, ``stat`` are
|
116
|
+
supported asynchronously and have intuitive argument order. They follow the
|
117
|
+
same patterns as the read/write/open calls, returning the result in the
|
118
|
+
``uv_fs_t.result`` field. The full list:
|
119
|
+
|
120
|
+
.. rubric:: Filesystem operations
|
121
|
+
.. code-block:: c
|
122
|
+
|
123
|
+
int uv_fs_close(uv_loop_t* loop, uv_fs_t* req, uv_file file, uv_fs_cb cb);
|
124
|
+
int uv_fs_open(uv_loop_t* loop, uv_fs_t* req, const char* path, int flags, int mode, uv_fs_cb cb);
|
125
|
+
int uv_fs_read(uv_loop_t* loop, uv_fs_t* req, uv_file file, const uv_buf_t bufs[], unsigned int nbufs, int64_t offset, uv_fs_cb cb);
|
126
|
+
int uv_fs_unlink(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb);
|
127
|
+
int uv_fs_write(uv_loop_t* loop, uv_fs_t* req, uv_file file, const uv_buf_t bufs[], unsigned int nbufs, int64_t offset, uv_fs_cb cb);
|
128
|
+
int uv_fs_copyfile(uv_loop_t* loop, uv_fs_t* req, const char* path, const char* new_path, int flags, uv_fs_cb cb);
|
129
|
+
int uv_fs_mkdir(uv_loop_t* loop, uv_fs_t* req, const char* path, int mode, uv_fs_cb cb);
|
130
|
+
int uv_fs_mkdtemp(uv_loop_t* loop, uv_fs_t* req, const char* tpl, uv_fs_cb cb);
|
131
|
+
int uv_fs_rmdir(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb);
|
132
|
+
int uv_fs_scandir(uv_loop_t* loop, uv_fs_t* req, const char* path, int flags, uv_fs_cb cb);
|
133
|
+
int uv_fs_scandir_next(uv_fs_t* req, uv_dirent_t* ent);
|
134
|
+
int uv_fs_opendir(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb);
|
135
|
+
int uv_fs_readdir(uv_loop_t* loop, uv_fs_t* req, uv_dir_t* dir, uv_fs_cb cb);
|
136
|
+
int uv_fs_closedir(uv_loop_t* loop, uv_fs_t* req, uv_dir_t* dir, uv_fs_cb cb);
|
137
|
+
int uv_fs_stat(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb);
|
138
|
+
int uv_fs_fstat(uv_loop_t* loop, uv_fs_t* req, uv_file file, uv_fs_cb cb);
|
139
|
+
int uv_fs_rename(uv_loop_t* loop, uv_fs_t* req, const char* path, const char* new_path, uv_fs_cb cb);
|
140
|
+
int uv_fs_fsync(uv_loop_t* loop, uv_fs_t* req, uv_file file, uv_fs_cb cb);
|
141
|
+
int uv_fs_fdatasync(uv_loop_t* loop, uv_fs_t* req, uv_file file, uv_fs_cb cb);
|
142
|
+
int uv_fs_ftruncate(uv_loop_t* loop, uv_fs_t* req, uv_file file, int64_t offset, uv_fs_cb cb);
|
143
|
+
int uv_fs_sendfile(uv_loop_t* loop, uv_fs_t* req, uv_file out_fd, uv_file in_fd, int64_t in_offset, size_t length, uv_fs_cb cb);
|
144
|
+
int uv_fs_access(uv_loop_t* loop, uv_fs_t* req, const char* path, int mode, uv_fs_cb cb);
|
145
|
+
int uv_fs_chmod(uv_loop_t* loop, uv_fs_t* req, const char* path, int mode, uv_fs_cb cb);
|
146
|
+
int uv_fs_utime(uv_loop_t* loop, uv_fs_t* req, const char* path, double atime, double mtime, uv_fs_cb cb);
|
147
|
+
int uv_fs_futime(uv_loop_t* loop, uv_fs_t* req, uv_file file, double atime, double mtime, uv_fs_cb cb);
|
148
|
+
int uv_fs_lstat(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb);
|
149
|
+
int uv_fs_link(uv_loop_t* loop, uv_fs_t* req, const char* path, const char* new_path, uv_fs_cb cb);
|
150
|
+
int uv_fs_symlink(uv_loop_t* loop, uv_fs_t* req, const char* path, const char* new_path, int flags, uv_fs_cb cb);
|
151
|
+
int uv_fs_readlink(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb);
|
152
|
+
int uv_fs_realpath(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb);
|
153
|
+
int uv_fs_fchmod(uv_loop_t* loop, uv_fs_t* req, uv_file file, int mode, uv_fs_cb cb);
|
154
|
+
int uv_fs_chown(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_uid_t uid, uv_gid_t gid, uv_fs_cb cb);
|
155
|
+
int uv_fs_fchown(uv_loop_t* loop, uv_fs_t* req, uv_file file, uv_uid_t uid, uv_gid_t gid, uv_fs_cb cb);
|
156
|
+
int uv_fs_lchown(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_uid_t uid, uv_gid_t gid, uv_fs_cb cb);
|
157
|
+
|
158
|
+
|
159
|
+
.. _buffers-and-streams:
|
160
|
+
|
161
|
+
Buffers and Streams
|
162
|
+
-------------------
|
163
|
+
|
164
|
+
The basic I/O handle in libuv is the stream (``uv_stream_t``). TCP sockets, UDP
|
165
|
+
sockets, and pipes for file I/O and IPC are all treated as stream subclasses.
|
166
|
+
|
167
|
+
Streams are initialized using custom functions for each subclass, then operated
|
168
|
+
upon using
|
169
|
+
|
170
|
+
.. code-block:: c
|
171
|
+
|
172
|
+
int uv_read_start(uv_stream_t*, uv_alloc_cb alloc_cb, uv_read_cb read_cb);
|
173
|
+
int uv_read_stop(uv_stream_t*);
|
174
|
+
int uv_write(uv_write_t* req, uv_stream_t* handle,
|
175
|
+
const uv_buf_t bufs[], unsigned int nbufs, uv_write_cb cb);
|
176
|
+
|
177
|
+
The stream based functions are simpler to use than the filesystem ones and
|
178
|
+
libuv will automatically keep reading from a stream when ``uv_read_start()`` is
|
179
|
+
called once, until ``uv_read_stop()`` is called.
|
180
|
+
|
181
|
+
The discrete unit of data is the buffer -- ``uv_buf_t``. This is simply
|
182
|
+
a collection of a pointer to bytes (``uv_buf_t.base``) and the length
|
183
|
+
(``uv_buf_t.len``). The ``uv_buf_t`` is lightweight and passed around by value.
|
184
|
+
What does require management is the actual bytes, which have to be allocated
|
185
|
+
and freed by the application.
|
186
|
+
|
187
|
+
.. ERROR::
|
188
|
+
|
189
|
+
THIS PROGRAM DOES NOT ALWAYS WORK, NEED SOMETHING BETTER**
|
190
|
+
|
191
|
+
To demonstrate streams we will need to use ``uv_pipe_t``. This allows streaming
|
192
|
+
local files [#]_. Here is a simple tee utility using libuv. Doing all operations
|
193
|
+
asynchronously shows the power of evented I/O. The two writes won't block each
|
194
|
+
other, but we have to be careful to copy over the buffer data to ensure we don't
|
195
|
+
free a buffer until it has been written.
|
196
|
+
|
197
|
+
The program is to be executed as::
|
198
|
+
|
199
|
+
./uvtee <output_file>
|
200
|
+
|
201
|
+
We start off opening pipes on the files we require. libuv pipes to a file are
|
202
|
+
opened as bidirectional by default.
|
203
|
+
|
204
|
+
.. rubric:: uvtee/main.c - read on pipes
|
205
|
+
.. literalinclude:: ../../code/uvtee/main.c
|
206
|
+
:linenos:
|
207
|
+
:lines: 61-80
|
208
|
+
:emphasize-lines: 4,5,15
|
209
|
+
|
210
|
+
The third argument of ``uv_pipe_init()`` should be set to 1 for IPC using named
|
211
|
+
pipes. This is covered in :doc:`processes`. The ``uv_pipe_open()`` call
|
212
|
+
associates the pipe with the file descriptor, in this case ``0`` (standard
|
213
|
+
input).
|
214
|
+
|
215
|
+
We start monitoring ``stdin``. The ``alloc_buffer`` callback is invoked as new
|
216
|
+
buffers are required to hold incoming data. ``read_stdin`` will be called with
|
217
|
+
these buffers.
|
218
|
+
|
219
|
+
.. rubric:: uvtee/main.c - reading buffers
|
220
|
+
.. literalinclude:: ../../code/uvtee/main.c
|
221
|
+
:linenos:
|
222
|
+
:lines: 19-22,44-60
|
223
|
+
|
224
|
+
The standard ``malloc`` is sufficient here, but you can use any memory allocation
|
225
|
+
scheme. For example, node.js uses its own slab allocator which associates
|
226
|
+
buffers with V8 objects.
|
227
|
+
|
228
|
+
The read callback ``nread`` parameter is less than 0 on any error. This error
|
229
|
+
might be EOF, in which case we close all the streams, using the generic close
|
230
|
+
function ``uv_close()`` which deals with the handle based on its internal type.
|
231
|
+
Otherwise ``nread`` is a non-negative number and we can attempt to write that
|
232
|
+
many bytes to the output streams. Finally remember that buffer allocation and
|
233
|
+
deallocation is application responsibility, so we free the data.
|
234
|
+
|
235
|
+
The allocation callback may return a buffer with length zero if it fails to
|
236
|
+
allocate memory. In this case, the read callback is invoked with error
|
237
|
+
UV_ENOBUFS. libuv will continue to attempt to read the stream though, so you
|
238
|
+
must explicitly call ``uv_close()`` if you want to stop when allocation fails.
|
239
|
+
|
240
|
+
The read callback may be called with ``nread = 0``, indicating that at this
|
241
|
+
point there is nothing to be read. Most applications will just ignore this.
|
242
|
+
|
243
|
+
.. rubric:: uvtee/main.c - Write to pipe
|
244
|
+
.. literalinclude:: ../../code/uvtee/main.c
|
245
|
+
:linenos:
|
246
|
+
:lines: 9-13,23-42
|
247
|
+
|
248
|
+
``write_data()`` makes a copy of the buffer obtained from read. This buffer
|
249
|
+
does not get passed through to the write callback trigged on write completion. To
|
250
|
+
get around this we wrap a write request and a buffer in ``write_req_t`` and
|
251
|
+
unwrap it in the callbacks. We make a copy so we can free the two buffers from
|
252
|
+
the two calls to ``write_data`` independently of each other. While acceptable
|
253
|
+
for a demo program like this, you'll probably want smarter memory management,
|
254
|
+
like reference counted buffers or a pool of buffers in any major application.
|
255
|
+
|
256
|
+
.. WARNING::
|
257
|
+
|
258
|
+
If your program is meant to be used with other programs it may knowingly or
|
259
|
+
unknowingly be writing to a pipe. This makes it susceptible to `aborting on
|
260
|
+
receiving a SIGPIPE`_. It is a good idea to insert::
|
261
|
+
|
262
|
+
signal(SIGPIPE, SIG_IGN)
|
263
|
+
|
264
|
+
in the initialization stages of your application.
|
265
|
+
|
266
|
+
.. _aborting on receiving a SIGPIPE: http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#The_special_problem_of_SIGPIPE
|
267
|
+
|
268
|
+
File change events
|
269
|
+
------------------
|
270
|
+
|
271
|
+
All modern operating systems provide APIs to put watches on individual files or
|
272
|
+
directories and be informed when the files are modified. libuv wraps common
|
273
|
+
file change notification libraries [#fsnotify]_. This is one of the more
|
274
|
+
inconsistent parts of libuv. File change notification systems are themselves
|
275
|
+
extremely varied across platforms so getting everything working everywhere is
|
276
|
+
difficult. To demonstrate, I'm going to build a simple utility which runs
|
277
|
+
a command whenever any of the watched files change::
|
278
|
+
|
279
|
+
./onchange <command> <file1> [file2] ...
|
280
|
+
|
281
|
+
The file change notification is started using ``uv_fs_event_init()``:
|
282
|
+
|
283
|
+
.. rubric:: onchange/main.c - The setup
|
284
|
+
.. literalinclude:: ../../code/onchange/main.c
|
285
|
+
:linenos:
|
286
|
+
:lines: 26-
|
287
|
+
:emphasize-lines: 15
|
288
|
+
|
289
|
+
The third argument is the actual file or directory to monitor. The last
|
290
|
+
argument, ``flags``, can be:
|
291
|
+
|
292
|
+
.. code-block:: c
|
293
|
+
|
294
|
+
/*
|
295
|
+
* Flags to be passed to uv_fs_event_start().
|
296
|
+
*/
|
297
|
+
enum uv_fs_event_flags {
|
298
|
+
UV_FS_EVENT_WATCH_ENTRY = 1,
|
299
|
+
UV_FS_EVENT_STAT = 2,
|
300
|
+
UV_FS_EVENT_RECURSIVE = 4
|
301
|
+
};
|
302
|
+
|
303
|
+
``UV_FS_EVENT_WATCH_ENTRY`` and ``UV_FS_EVENT_STAT`` don't do anything (yet).
|
304
|
+
``UV_FS_EVENT_RECURSIVE`` will start watching subdirectories as well on
|
305
|
+
supported platforms.
|
306
|
+
|
307
|
+
The callback will receive the following arguments:
|
308
|
+
|
309
|
+
#. ``uv_fs_event_t *handle`` - The handle. The ``path`` field of the handle
|
310
|
+
is the file on which the watch was set.
|
311
|
+
#. ``const char *filename`` - If a directory is being monitored, this is the
|
312
|
+
file which was changed. Only non-``null`` on Linux and Windows. May be ``null``
|
313
|
+
even on those platforms.
|
314
|
+
#. ``int flags`` - one of ``UV_RENAME`` or ``UV_CHANGE``, or a bitwise OR of
|
315
|
+
both.
|
316
|
+
#. ``int status`` - Currently 0.
|
317
|
+
|
318
|
+
In our example we simply print the arguments and run the command using
|
319
|
+
``system()``.
|
320
|
+
|
321
|
+
.. rubric:: onchange/main.c - file change notification callback
|
322
|
+
.. literalinclude:: ../../code/onchange/main.c
|
323
|
+
:linenos:
|
324
|
+
:lines: 9-24
|
325
|
+
|
326
|
+
----
|
327
|
+
|
328
|
+
.. [#fsnotify] inotify on Linux, FSEvents on Darwin, kqueue on BSDs,
|
329
|
+
ReadDirectoryChangesW on Windows, event ports on Solaris, unsupported on Cygwin
|
330
|
+
.. [#] see :ref:`pipes`
|
@@ -0,0 +1,75 @@
|
|
1
|
+
Introduction
|
2
|
+
============
|
3
|
+
|
4
|
+
This 'book' is a small set of tutorials about using libuv_ as
|
5
|
+
a high performance evented I/O library which offers the same API on Windows and Unix.
|
6
|
+
|
7
|
+
It is meant to cover the main areas of libuv, but is not a comprehensive
|
8
|
+
reference discussing every function and data structure. The `official libuv
|
9
|
+
documentation`_ may be consulted for full details.
|
10
|
+
|
11
|
+
.. _official libuv documentation: http://docs.libuv.org/en/v1.x/
|
12
|
+
|
13
|
+
This book is still a work in progress, so sections may be incomplete, but
|
14
|
+
I hope you will enjoy it as it grows.
|
15
|
+
|
16
|
+
Who this book is for
|
17
|
+
--------------------
|
18
|
+
|
19
|
+
If you are reading this book, you are either:
|
20
|
+
|
21
|
+
1) a systems programmer, creating low-level programs such as daemons or network
|
22
|
+
services and clients. You have found that the event loop approach is well
|
23
|
+
suited for your application and decided to use libuv.
|
24
|
+
|
25
|
+
2) a node.js module writer, who wants to wrap platform APIs
|
26
|
+
written in C or C++ with a set of (a)synchronous APIs that are exposed to
|
27
|
+
JavaScript. You will use libuv purely in the context of node.js. For
|
28
|
+
this you will require some other resources as the book does not cover parts
|
29
|
+
specific to v8/node.js.
|
30
|
+
|
31
|
+
This book assumes that you are comfortable with the C programming language.
|
32
|
+
|
33
|
+
Background
|
34
|
+
----------
|
35
|
+
|
36
|
+
The node.js_ project began in 2009 as a JavaScript environment decoupled
|
37
|
+
from the browser. Using Google's V8_ and Marc Lehmann's libev_, node.js
|
38
|
+
combined a model of I/O -- evented -- with a language that was well suited to
|
39
|
+
the style of programming; due to the way it had been shaped by browsers. As
|
40
|
+
node.js grew in popularity, it was important to make it work on Windows, but
|
41
|
+
libev ran only on Unix. The Windows equivalent of kernel event notification
|
42
|
+
mechanisms like kqueue or (e)poll is IOCP. libuv was an abstraction around libev
|
43
|
+
or IOCP depending on the platform, providing users an API based on libev.
|
44
|
+
In the node-v0.9.0 version of libuv `libev was removed`_.
|
45
|
+
|
46
|
+
Since then libuv has continued to mature and become a high quality standalone
|
47
|
+
library for system programming. Users outside of node.js include Mozilla's
|
48
|
+
Rust_ programming language, and a variety_ of language bindings.
|
49
|
+
|
50
|
+
This book and the code is based on libuv version `v1.3.0`_.
|
51
|
+
|
52
|
+
Code
|
53
|
+
----
|
54
|
+
|
55
|
+
All the code from this book is included as part of the source of the book on
|
56
|
+
Github. `Clone`_/`Download`_ the book, then build libuv::
|
57
|
+
|
58
|
+
cd libuv
|
59
|
+
./autogen.sh
|
60
|
+
./configure
|
61
|
+
make
|
62
|
+
|
63
|
+
There is no need to ``make install``. To build the examples run ``make`` in the
|
64
|
+
``code/`` directory.
|
65
|
+
|
66
|
+
.. _Clone: https://github.com/nikhilm/uvbook
|
67
|
+
.. _Download: https://github.com/nikhilm/uvbook/downloads
|
68
|
+
.. _v1.3.0: https://github.com/libuv/libuv/tags
|
69
|
+
.. _V8: https://v8.dev
|
70
|
+
.. _libev: http://software.schmorp.de/pkg/libev.html
|
71
|
+
.. _libuv: https://github.com/libuv/libuv
|
72
|
+
.. _node.js: https://www.nodejs.org
|
73
|
+
.. _libev was removed: https://github.com/joyent/libuv/issues/485
|
74
|
+
.. _Rust: https://www.rust-lang.org
|
75
|
+
.. _variety: https://github.com/libuv/libuv/wiki/Projects-that-use-libuv
|
@@ -0,0 +1,250 @@
|
|
1
|
+
Networking
|
2
|
+
==========
|
3
|
+
|
4
|
+
Networking in libuv is not much different from directly using the BSD socket
|
5
|
+
interface, some things are easier, all are non-blocking, but the concepts stay
|
6
|
+
the same. In addition libuv offers utility functions to abstract the annoying,
|
7
|
+
repetitive and low-level tasks like setting up sockets using the BSD socket
|
8
|
+
structures, DNS lookup, and tweaking various socket parameters.
|
9
|
+
|
10
|
+
The ``uv_tcp_t`` and ``uv_udp_t`` structures are used for network I/O.
|
11
|
+
|
12
|
+
.. NOTE::
|
13
|
+
|
14
|
+
The code samples in this chapter exist to show certain libuv APIs. They are
|
15
|
+
not examples of good quality code. They leak memory and don't always close
|
16
|
+
connections properly.
|
17
|
+
|
18
|
+
TCP
|
19
|
+
---
|
20
|
+
|
21
|
+
TCP is a connection oriented, stream protocol and is therefore based on the
|
22
|
+
libuv streams infrastructure.
|
23
|
+
|
24
|
+
Server
|
25
|
+
++++++
|
26
|
+
|
27
|
+
Server sockets proceed by:
|
28
|
+
|
29
|
+
1. ``uv_tcp_init`` the TCP handle.
|
30
|
+
2. ``uv_tcp_bind`` it.
|
31
|
+
3. Call ``uv_listen`` on the handle to have a callback invoked whenever a new
|
32
|
+
connection is established by a client.
|
33
|
+
4. Use ``uv_accept`` to accept the connection.
|
34
|
+
5. Use :ref:`stream operations <buffers-and-streams>` to communicate with the
|
35
|
+
client.
|
36
|
+
|
37
|
+
Here is a simple echo server
|
38
|
+
|
39
|
+
.. rubric:: tcp-echo-server/main.c - The listen socket
|
40
|
+
.. literalinclude:: ../../code/tcp-echo-server/main.c
|
41
|
+
:linenos:
|
42
|
+
:lines: 68-
|
43
|
+
:emphasize-lines: 4-5,7-10
|
44
|
+
|
45
|
+
You can see the utility function ``uv_ip4_addr`` being used to convert from
|
46
|
+
a human readable IP address, port pair to the sockaddr_in structure required by
|
47
|
+
the BSD socket APIs. The reverse can be obtained using ``uv_ip4_name``.
|
48
|
+
|
49
|
+
.. NOTE::
|
50
|
+
|
51
|
+
There are ``uv_ip6_*`` analogues for the ip4 functions.
|
52
|
+
|
53
|
+
Most of the setup functions are synchronous since they are CPU-bound.
|
54
|
+
``uv_listen`` is where we return to libuv's callback style. The second
|
55
|
+
arguments is the backlog queue -- the maximum length of queued connections.
|
56
|
+
|
57
|
+
When a connection is initiated by clients, the callback is required to set up
|
58
|
+
a handle for the client socket and associate the handle using ``uv_accept``.
|
59
|
+
In this case we also establish interest in reading from this stream.
|
60
|
+
|
61
|
+
.. rubric:: tcp-echo-server/main.c - Accepting the client
|
62
|
+
.. literalinclude:: ../../code/tcp-echo-server/main.c
|
63
|
+
:linenos:
|
64
|
+
:lines: 51-66
|
65
|
+
:emphasize-lines: 9-10
|
66
|
+
|
67
|
+
The remaining set of functions is very similar to the streams example and can
|
68
|
+
be found in the code. Just remember to call ``uv_close`` when the socket isn't
|
69
|
+
required. This can be done even in the ``uv_listen`` callback if you are not
|
70
|
+
interested in accepting the connection.
|
71
|
+
|
72
|
+
Client
|
73
|
+
++++++
|
74
|
+
|
75
|
+
Where you do bind/listen/accept on the server, on the client side it's simply
|
76
|
+
a matter of calling ``uv_tcp_connect``. The same ``uv_connect_cb`` style
|
77
|
+
callback of ``uv_listen`` is used by ``uv_tcp_connect``. Try::
|
78
|
+
|
79
|
+
uv_tcp_t* socket = (uv_tcp_t*)malloc(sizeof(uv_tcp_t));
|
80
|
+
uv_tcp_init(loop, socket);
|
81
|
+
|
82
|
+
uv_connect_t* connect = (uv_connect_t*)malloc(sizeof(uv_connect_t));
|
83
|
+
|
84
|
+
struct sockaddr_in dest;
|
85
|
+
uv_ip4_addr("127.0.0.1", 80, &dest);
|
86
|
+
|
87
|
+
uv_tcp_connect(connect, socket, (const struct sockaddr*)&dest, on_connect);
|
88
|
+
|
89
|
+
where ``on_connect`` will be called after the connection is established. The
|
90
|
+
callback receives the ``uv_connect_t`` struct, which has a member ``.handle``
|
91
|
+
pointing to the socket.
|
92
|
+
|
93
|
+
UDP
|
94
|
+
---
|
95
|
+
|
96
|
+
The `User Datagram Protocol`_ offers connectionless, unreliable network
|
97
|
+
communication. Hence libuv doesn't offer a stream. Instead libuv provides
|
98
|
+
non-blocking UDP support via the `uv_udp_t` handle (for receiving) and
|
99
|
+
`uv_udp_send_t` request (for sending) and related functions. That said, the
|
100
|
+
actual API for reading/writing is very similar to normal stream reads. To look
|
101
|
+
at how UDP can be used, the example shows the first stage of obtaining an IP
|
102
|
+
address from a `DHCP`_ server -- DHCP Discover.
|
103
|
+
|
104
|
+
.. note::
|
105
|
+
|
106
|
+
You will have to run `udp-dhcp` as **root** since it uses well known port
|
107
|
+
numbers below 1024.
|
108
|
+
|
109
|
+
.. rubric:: udp-dhcp/main.c - Setup and send UDP packets
|
110
|
+
.. literalinclude:: ../../code/udp-dhcp/main.c
|
111
|
+
:linenos:
|
112
|
+
:lines: 7-11,104-
|
113
|
+
:emphasize-lines: 8,10-11,17-18,21
|
114
|
+
|
115
|
+
.. note::
|
116
|
+
|
117
|
+
The IP address ``0.0.0.0`` is used to bind to all interfaces. The IP
|
118
|
+
address ``255.255.255.255`` is a broadcast address meaning that packets
|
119
|
+
will be sent to all interfaces on the subnet. port ``0`` means that the OS
|
120
|
+
randomly assigns a port.
|
121
|
+
|
122
|
+
First we setup the receiving socket to bind on all interfaces on port 68 (DHCP
|
123
|
+
client) and start a read on it. This will read back responses from any DHCP
|
124
|
+
server that replies. We use the UV_UDP_REUSEADDR flag to play nice with any
|
125
|
+
other system DHCP clients that are running on this computer on the same port.
|
126
|
+
Then we setup a similar send socket and use ``uv_udp_send`` to send
|
127
|
+
a *broadcast message* on port 67 (DHCP server).
|
128
|
+
|
129
|
+
It is **necessary** to set the broadcast flag, otherwise you will get an
|
130
|
+
``EACCES`` error [#]_. The exact message being sent is not relevant to this
|
131
|
+
book and you can study the code if you are interested. As usual the read and
|
132
|
+
write callbacks will receive a status code of < 0 if something went wrong.
|
133
|
+
|
134
|
+
Since UDP sockets are not connected to a particular peer, the read callback
|
135
|
+
receives an extra parameter about the sender of the packet.
|
136
|
+
|
137
|
+
``nread`` may be zero if there is no more data to be read. If ``addr`` is NULL,
|
138
|
+
it indicates there is nothing to read (the callback shouldn't do anything), if
|
139
|
+
not NULL, it indicates that an empty datagram was received from the host at
|
140
|
+
``addr``. The ``flags`` parameter may be ``UV_UDP_PARTIAL`` if the buffer
|
141
|
+
provided by your allocator was not large enough to hold the data. *In this case
|
142
|
+
the OS will discard the data that could not fit* (That's UDP for you!).
|
143
|
+
|
144
|
+
.. rubric:: udp-dhcp/main.c - Reading packets
|
145
|
+
.. literalinclude:: ../../code/udp-dhcp/main.c
|
146
|
+
:linenos:
|
147
|
+
:lines: 17-40
|
148
|
+
:emphasize-lines: 1,23
|
149
|
+
|
150
|
+
UDP Options
|
151
|
+
+++++++++++
|
152
|
+
|
153
|
+
Time-to-live
|
154
|
+
~~~~~~~~~~~~
|
155
|
+
|
156
|
+
The TTL of packets sent on the socket can be changed using ``uv_udp_set_ttl``.
|
157
|
+
|
158
|
+
IPv6 stack only
|
159
|
+
~~~~~~~~~~~~~~~
|
160
|
+
|
161
|
+
IPv6 sockets can be used for both IPv4 and IPv6 communication. If you want to
|
162
|
+
restrict the socket to IPv6 only, pass the ``UV_UDP_IPV6ONLY`` flag to
|
163
|
+
``uv_udp_bind`` [#]_.
|
164
|
+
|
165
|
+
Multicast
|
166
|
+
~~~~~~~~~
|
167
|
+
|
168
|
+
A socket can (un)subscribe to a multicast group using:
|
169
|
+
|
170
|
+
.. code::block:: c
|
171
|
+
|
172
|
+
int uv_udp_set_membership(uv_udp_t* handle, const char* multicast_addr, const char* interface_addr, uv_membership membership);
|
173
|
+
|
174
|
+
where ``membership`` is ``UV_JOIN_GROUP`` or ``UV_LEAVE_GROUP``.
|
175
|
+
|
176
|
+
The concepts of multicasting are nicely explained in `this guide`_.
|
177
|
+
|
178
|
+
.. _this guide: https://www.tldp.org/HOWTO/Multicast-HOWTO-2.html
|
179
|
+
|
180
|
+
Local loopback of multicast packets is enabled by default [#]_, use
|
181
|
+
``uv_udp_set_multicast_loop`` to switch it off.
|
182
|
+
|
183
|
+
The packet time-to-live for multicast packets can be changed using
|
184
|
+
``uv_udp_set_multicast_ttl``.
|
185
|
+
|
186
|
+
Querying DNS
|
187
|
+
------------
|
188
|
+
|
189
|
+
libuv provides asynchronous DNS resolution. For this it provides its own
|
190
|
+
``getaddrinfo`` replacement [#]_. In the callback you can
|
191
|
+
perform normal socket operations on the retrieved addresses. Let's connect to
|
192
|
+
Freenode to see an example of DNS resolution.
|
193
|
+
|
194
|
+
.. rubric:: dns/main.c
|
195
|
+
.. literalinclude:: ../../code/dns/main.c
|
196
|
+
:linenos:
|
197
|
+
:lines: 61-
|
198
|
+
:emphasize-lines: 12
|
199
|
+
|
200
|
+
If ``uv_getaddrinfo`` returns non-zero, something went wrong in the setup and
|
201
|
+
your callback won't be invoked at all. All arguments can be freed immediately
|
202
|
+
after ``uv_getaddrinfo`` returns. The `hostname`, `servname` and `hints`
|
203
|
+
structures are documented in `the getaddrinfo man page <getaddrinfo>`_. The
|
204
|
+
callback can be ``NULL`` in which case the function will run synchronously.
|
205
|
+
|
206
|
+
In the resolver callback, you can pick any IP from the linked list of ``struct
|
207
|
+
addrinfo(s)``. This also demonstrates ``uv_tcp_connect``. It is necessary to
|
208
|
+
call ``uv_freeaddrinfo`` in the callback.
|
209
|
+
|
210
|
+
.. rubric:: dns/main.c
|
211
|
+
.. literalinclude:: ../../code/dns/main.c
|
212
|
+
:linenos:
|
213
|
+
:lines: 42-60
|
214
|
+
:emphasize-lines: 8,16
|
215
|
+
|
216
|
+
libuv also provides the inverse `uv_getnameinfo`_.
|
217
|
+
|
218
|
+
.. _uv_getnameinfo: http://docs.libuv.org/en/v1.x/dns.html#c.uv_getnameinfo
|
219
|
+
|
220
|
+
Network interfaces
|
221
|
+
------------------
|
222
|
+
|
223
|
+
Information about the system's network interfaces can be obtained through libuv
|
224
|
+
using ``uv_interface_addresses``. This simple program just prints out all the
|
225
|
+
interface details so you get an idea of the fields that are available. This is
|
226
|
+
useful to allow your service to bind to IP addresses when it starts.
|
227
|
+
|
228
|
+
.. rubric:: interfaces/main.c
|
229
|
+
.. literalinclude:: ../../code/interfaces/main.c
|
230
|
+
:linenos:
|
231
|
+
:emphasize-lines: 9,17
|
232
|
+
|
233
|
+
``is_internal`` is true for loopback interfaces. Note that if a physical
|
234
|
+
interface has multiple IPv4/IPv6 addresses, the name will be reported multiple
|
235
|
+
times, with each address being reported once.
|
236
|
+
|
237
|
+
.. _c-ares: https://c-ares.haxx.se
|
238
|
+
.. _getaddrinfo: https://www.kernel.org/doc/man-pages/online/pages/man3/getaddrinfo.3.html
|
239
|
+
|
240
|
+
.. _User Datagram Protocol: https://en.wikipedia.org/wiki/User_Datagram_Protocol
|
241
|
+
.. _DHCP: https://tools.ietf.org/html/rfc2131
|
242
|
+
|
243
|
+
----
|
244
|
+
|
245
|
+
.. [#] https://beej.us/guide/bgnet/html/#broadcast-packetshello-world
|
246
|
+
.. [#] on Windows only supported on Windows Vista and later.
|
247
|
+
.. [#] https://www.tldp.org/HOWTO/Multicast-HOWTO-6.html#ss6.1
|
248
|
+
.. [#] libuv use the system ``getaddrinfo`` in the libuv threadpool. libuv
|
249
|
+
v0.8.0 and earlier also included c-ares_ as an alternative, but this has been
|
250
|
+
removed in v0.9.0.
|