text_ux 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +25 -0
- data/.rspec +2 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +51 -0
- data/Rakefile +18 -0
- data/ext/text_ux/extconf.rb +5 -0
- data/ext/text_ux/text_ux.cpp +252 -0
- data/lib/text_ux.rb +5 -0
- data/lib/text_ux/version.rb +3 -0
- data/spec/fixtures/test.ux +0 -0
- data/spec/spec_helper.rb +19 -0
- data/spec/text_ux_spec.rb +137 -0
- data/text_ux.gemspec +26 -0
- data/vendor/ux-trie/ux-0.1.9/.lock-waf_darwin_build +8 -0
- data/vendor/ux-trie/ux-0.1.9/.unittest-gtest/gtest-1.6.0/fused-src/gtest/gtest-all.cc +9118 -0
- data/vendor/ux-trie/ux-0.1.9/.unittest-gtest/gtest-1.6.0/fused-src/gtest/gtest.h +19537 -0
- data/vendor/ux-trie/ux-0.1.9/.unittest-gtest/gtest-1.6.0/fused-src/gtest/gtest_main.cc +39 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Build.py +733 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Build.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/ConfigSet.py +147 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/ConfigSet.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Configure.py +314 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Configure.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Context.py +298 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Context.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Errors.py +37 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Errors.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Logs.py +149 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Logs.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Node.py +500 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Node.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Options.py +130 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Options.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Runner.py +191 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Runner.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Scripting.py +358 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Scripting.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Task.py +669 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Task.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/TaskGen.py +341 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/TaskGen.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/__init__.py +4 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/__init__.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/ar.py +12 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/ar.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/asm.py +25 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/bison.py +29 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/c.py +27 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/c_aliases.py +56 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/c_aliases.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/c_config.py +708 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/c_config.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/c_osx.py +121 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/c_osx.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/c_preproc.py +606 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/c_preproc.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/c_tests.py +110 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/c_tests.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/ccroot.py +372 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/ccroot.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/compiler_c.py +39 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/compiler_cxx.py +39 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/compiler_cxx.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/compiler_d.py +30 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/compiler_fc.py +45 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/cs.py +98 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/cxx.py +27 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/cxx.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/d.py +51 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/d_config.py +47 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/d_scan.py +133 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/dbus.py +30 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/dmd.py +43 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/errcheck.py +153 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/fc.py +123 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/fc_config.py +271 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/fc_scan.py +68 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/flex.py +27 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/g95.py +55 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/gas.py +10 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/gcc.py +98 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/gdc.py +34 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/gfortran.py +69 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/glib2.py +174 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/gnu_dirs.py +65 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/gxx.py +98 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/gxx.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/icc.py +31 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/icpc.py +30 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/ifort.py +42 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/intltool.py +78 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/irixcc.py +49 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/javaw.py +272 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/kde4.py +49 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/lua.py +19 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/msvc.py +650 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/nasm.py +13 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/perl.py +78 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/python.py +303 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/qt4.py +424 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/ruby.py +104 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/suncc.py +54 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/suncxx.py +55 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/tex.py +222 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/vala.py +215 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/waf_unit_test.py +79 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/winres.py +34 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/xlc.py +46 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/xlcxx.py +46 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Utils.py +334 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Utils.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/__init__.py +4 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/__init__.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/ansiterm.py +173 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/ansiterm.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/extras/__init__.py +4 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/extras/__init__.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/extras/compat15.py +223 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/extras/compat15.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/fixpy2.py +50 -0
- data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/fixpy2.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/src/bitVec.cpp +119 -0
- data/vendor/ux-trie/ux-0.1.9/src/bitVec.hpp +64 -0
- data/vendor/ux-trie/ux-0.1.9/src/bitVecTest.cpp +143 -0
- data/vendor/ux-trie/ux-0.1.9/src/cmdline.h +809 -0
- data/vendor/ux-trie/ux-0.1.9/src/rsDic.cpp +121 -0
- data/vendor/ux-trie/ux-0.1.9/src/rsDic.hpp +57 -0
- data/vendor/ux-trie/ux-0.1.9/src/ux.hpp +26 -0
- data/vendor/ux-trie/ux-0.1.9/src/uxMain.cpp +206 -0
- data/vendor/ux-trie/ux-0.1.9/src/uxMap.cpp +0 -0
- data/vendor/ux-trie/ux-0.1.9/src/uxMap.hpp +248 -0
- data/vendor/ux-trie/ux-0.1.9/src/uxMapTest.cpp +139 -0
- data/vendor/ux-trie/ux-0.1.9/src/uxTest.cpp +229 -0
- data/vendor/ux-trie/ux-0.1.9/src/uxTrie.cpp +529 -0
- data/vendor/ux-trie/ux-0.1.9/src/uxTrie.hpp +220 -0
- data/vendor/ux-trie/ux-0.1.9/src/uxUtil.cpp +92 -0
- data/vendor/ux-trie/ux-0.1.9/src/uxUtil.hpp +35 -0
- data/vendor/ux-trie/ux-0.1.9/src/wscript +43 -0
- data/vendor/ux-trie/ux-0.1.9/unittest_gtest.py +0 -0
- data/vendor/ux-trie/ux-0.1.9/unittest_gtest.pyc +0 -0
- data/vendor/ux-trie/ux-0.1.9/unittestt.py +166 -0
- data/vendor/ux-trie/ux-0.1.9/ux.pc.in +10 -0
- data/vendor/ux-trie/ux-0.1.9/waf +0 -0
- data/vendor/ux-trie/ux-0.1.9/wscript +32 -0
- metadata +249 -0
data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/c_preproc.pyc
ADDED
Binary file
|
data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/c_tests.py
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
#! /usr/bin/env python
|
2
|
+
# encoding: utf-8
|
3
|
+
# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
|
4
|
+
|
5
|
+
from waflib.Configure import conf
|
6
|
+
from waflib.TaskGen import feature,before_method
|
7
|
+
import sys
|
8
|
+
LIB_CODE='''
|
9
|
+
#ifdef _MSC_VER
|
10
|
+
#define testEXPORT __declspec(dllexport)
|
11
|
+
#else
|
12
|
+
#define testEXPORT
|
13
|
+
#endif
|
14
|
+
testEXPORT int lib_func(void) { return 9; }
|
15
|
+
'''
|
16
|
+
MAIN_CODE='''
|
17
|
+
#ifdef _MSC_VER
|
18
|
+
#define testEXPORT __declspec(dllimport)
|
19
|
+
#else
|
20
|
+
#define testEXPORT
|
21
|
+
#endif
|
22
|
+
testEXPORT int lib_func(void);
|
23
|
+
int main(void) {return !(lib_func() == 9);}
|
24
|
+
'''
|
25
|
+
def link_lib_test_fun(self):
|
26
|
+
def write_test_file(task):
|
27
|
+
task.outputs[0].write(task.generator.code)
|
28
|
+
rpath=[]
|
29
|
+
if getattr(self,'add_rpath',False):
|
30
|
+
rpath=[self.bld.path.get_bld().abspath()]
|
31
|
+
mode=self.mode
|
32
|
+
m='%s %s'%(mode,mode)
|
33
|
+
bld=self.bld
|
34
|
+
bld(rule=write_test_file,target='test.'+mode,code=LIB_CODE)
|
35
|
+
bld(rule=write_test_file,target='main.'+mode,code=MAIN_CODE)
|
36
|
+
bld(features=m+'shlib',source='test.'+mode,target='test')
|
37
|
+
bld(features=m+'program test_exec',source='main.'+mode,target='app',use='test',rpath=rpath)
|
38
|
+
def check_library(self,mode=None):
|
39
|
+
if not mode:
|
40
|
+
mode='c'
|
41
|
+
if self.env.CXX:
|
42
|
+
mode='cxx'
|
43
|
+
self.check(compile_filename=[],features='link_lib_test',msg='Checking for libraries',mode=mode)
|
44
|
+
INLINE_CODE='''
|
45
|
+
typedef int foo_t;
|
46
|
+
static %s foo_t static_foo () {return 0; }
|
47
|
+
%s foo_t foo () {
|
48
|
+
return 0;
|
49
|
+
}
|
50
|
+
'''
|
51
|
+
INLINE_VALUES=['inline','__inline__','__inline']
|
52
|
+
def check_inline(self,**kw):
|
53
|
+
self.start_msg('Checking for inline')
|
54
|
+
if not'define_name'in kw:
|
55
|
+
kw['define_name']='INLINE_MACRO'
|
56
|
+
if not'features'in kw:
|
57
|
+
if self.env.CXX:
|
58
|
+
kw['features']=['cxx']
|
59
|
+
else:
|
60
|
+
kw['features']=['c']
|
61
|
+
for x in INLINE_VALUES:
|
62
|
+
kw['fragment']=INLINE_CODE%(x,x)
|
63
|
+
try:
|
64
|
+
self.check(**kw)
|
65
|
+
except self.errors.ConfigurationError:
|
66
|
+
continue
|
67
|
+
else:
|
68
|
+
self.end_msg(x)
|
69
|
+
if x!='inline':
|
70
|
+
self.define('inline',x,quote=False)
|
71
|
+
return x
|
72
|
+
self.fatal('could not use inline functions')
|
73
|
+
LARGE_FRAGMENT='#include <unistd.h>\nint main() { return !(sizeof(off_t) >= 8); }\n'
|
74
|
+
def check_large_file(self,**kw):
|
75
|
+
if not'define_name'in kw:
|
76
|
+
kw['define_name']='HAVE_LARGEFILE'
|
77
|
+
if not'execute'in kw:
|
78
|
+
kw['execute']=True
|
79
|
+
if not'features'in kw:
|
80
|
+
if self.env.CXX:
|
81
|
+
kw['features']=['cxx','cxxprogram']
|
82
|
+
else:
|
83
|
+
kw['features']=['c','cprogram']
|
84
|
+
kw['fragment']=LARGE_FRAGMENT
|
85
|
+
kw['msg']='Checking for large file support'
|
86
|
+
ret=True
|
87
|
+
try:
|
88
|
+
if self.env.DEST_BINFMT!='pe':
|
89
|
+
ret=self.check(**kw)
|
90
|
+
except self.errors.ConfigurationError:
|
91
|
+
pass
|
92
|
+
else:
|
93
|
+
if ret:
|
94
|
+
return True
|
95
|
+
kw['msg']='Checking for -D_FILE_OFFSET_BITS=64'
|
96
|
+
kw['defines']=['_FILE_OFFSET_BITS=64']
|
97
|
+
try:
|
98
|
+
ret=self.check(**kw)
|
99
|
+
except self.errors.ConfigurationError:
|
100
|
+
pass
|
101
|
+
else:
|
102
|
+
self.define('_FILE_OFFSET_BITS',64)
|
103
|
+
return ret
|
104
|
+
self.fatal('There is no support for large files')
|
105
|
+
|
106
|
+
feature('link_lib_test')(link_lib_test_fun)
|
107
|
+
before_method('process_source')(link_lib_test_fun)
|
108
|
+
conf(check_library)
|
109
|
+
conf(check_inline)
|
110
|
+
conf(check_large_file)
|
data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/c_tests.pyc
ADDED
Binary file
|
data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/ccroot.py
ADDED
@@ -0,0 +1,372 @@
|
|
1
|
+
#! /usr/bin/env python
|
2
|
+
# encoding: utf-8
|
3
|
+
# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
|
4
|
+
|
5
|
+
import sys
|
6
|
+
if sys.hexversion < 0x020400f0: from sets import Set as set
|
7
|
+
import os,sys,re
|
8
|
+
from waflib import TaskGen,Task,Utils,Logs,Build,Options,Node,Errors
|
9
|
+
from waflib.Logs import error,debug,warn
|
10
|
+
from waflib.TaskGen import after_method,before_method,feature,taskgen_method,extension
|
11
|
+
from waflib.Tools import c_aliases,c_preproc,c_config,c_osx,c_tests
|
12
|
+
from waflib.Configure import conf
|
13
|
+
USELIB_VARS=Utils.defaultdict(set)
|
14
|
+
USELIB_VARS['c']=set(['INCLUDES','FRAMEWORKPATH','DEFINES','CPPFLAGS','CCDEPS','CFLAGS','ARCH'])
|
15
|
+
USELIB_VARS['cxx']=set(['INCLUDES','FRAMEWORKPATH','DEFINES','CPPFLAGS','CXXDEPS','CXXFLAGS','ARCH'])
|
16
|
+
USELIB_VARS['d']=set(['INCLUDES','DFLAGS'])
|
17
|
+
USELIB_VARS['cprogram']=USELIB_VARS['cxxprogram']=set(['LIB','STLIB','LIBPATH','STLIBPATH','LINKFLAGS','RPATH','LINKDEPS','FRAMEWORK','FRAMEWORKPATH','ARCH'])
|
18
|
+
USELIB_VARS['cshlib']=USELIB_VARS['cxxshlib']=set(['LIB','STLIB','LIBPATH','STLIBPATH','LINKFLAGS','RPATH','LINKDEPS','FRAMEWORK','FRAMEWORKPATH','ARCH'])
|
19
|
+
USELIB_VARS['cstlib']=USELIB_VARS['cxxstlib']=set(['ARFLAGS','LINKDEPS'])
|
20
|
+
USELIB_VARS['dprogram']=set(['LIB','STLIB','LIBPATH','STLIBPATH','LINKFLAGS','RPATH','LINKDEPS'])
|
21
|
+
USELIB_VARS['dshlib']=set(['LIB','STLIB','LIBPATH','STLIBPATH','LINKFLAGS','RPATH','LINKDEPS'])
|
22
|
+
USELIB_VARS['dstlib']=set(['ARFLAGS','LINKDEPS'])
|
23
|
+
USELIB_VARS['go']=set(['GOCFLAGS'])
|
24
|
+
USELIB_VARS['goprogram']=set(['GOLFLAGS'])
|
25
|
+
USELIB_VARS['asm']=set(['ASFLAGS'])
|
26
|
+
def create_compiled_task(self,name,node):
|
27
|
+
out='%s.%d.o'%(node.name,self.idx)
|
28
|
+
task=self.create_task(name,node,node.parent.find_or_declare(out))
|
29
|
+
try:
|
30
|
+
self.compiled_tasks.append(task)
|
31
|
+
except AttributeError:
|
32
|
+
self.compiled_tasks=[task]
|
33
|
+
return task
|
34
|
+
def to_incnodes(self,inlst):
|
35
|
+
lst=[]
|
36
|
+
seen=set([])
|
37
|
+
for x in self.to_list(inlst):
|
38
|
+
if x in seen or not x:
|
39
|
+
continue
|
40
|
+
seen.add(x)
|
41
|
+
if isinstance(x,Node.Node):
|
42
|
+
lst.append(x)
|
43
|
+
else:
|
44
|
+
if os.path.isabs(x):
|
45
|
+
lst.append(self.bld.root.make_node(x)or x)
|
46
|
+
else:
|
47
|
+
if x[0]=='#':
|
48
|
+
p=self.bld.bldnode.make_node(x[1:])
|
49
|
+
v=self.bld.srcnode.make_node(x[1:])
|
50
|
+
else:
|
51
|
+
p=self.path.get_bld().make_node(x)
|
52
|
+
v=self.path.make_node(x)
|
53
|
+
p.mkdir()
|
54
|
+
lst.append(p)
|
55
|
+
lst.append(v)
|
56
|
+
return lst
|
57
|
+
def apply_incpaths(self):
|
58
|
+
lst=self.to_incnodes(self.to_list(getattr(self,'includes',[]))+self.env['INCLUDES'])
|
59
|
+
self.includes_nodes=lst
|
60
|
+
self.env['INCPATHS']=[x.abspath()for x in lst]
|
61
|
+
class link_task(Task.Task):
|
62
|
+
color='YELLOW'
|
63
|
+
inst_to=None
|
64
|
+
chmod=Utils.O644
|
65
|
+
def add_target(self,target):
|
66
|
+
if isinstance(target,str):
|
67
|
+
pattern=self.env[self.__class__.__name__+'_PATTERN']
|
68
|
+
if not pattern:
|
69
|
+
pattern='%s'
|
70
|
+
folder,name=os.path.split(target)
|
71
|
+
if self.__class__.__name__.find('shlib')>0:
|
72
|
+
if self.env.DEST_BINFMT=='pe'and getattr(self.generator,'vnum',None):
|
73
|
+
name=name+'-'+self.generator.vnum.split('.')[0]
|
74
|
+
tmp=folder+os.sep+pattern%name
|
75
|
+
target=self.generator.path.find_or_declare(tmp)
|
76
|
+
self.set_outputs(target)
|
77
|
+
class stlink_task(link_task):
|
78
|
+
run_str='${AR} ${ARFLAGS} ${AR_TGT_F}${TGT} ${AR_SRC_F}${SRC}'
|
79
|
+
def rm_tgt(cls):
|
80
|
+
old=cls.run
|
81
|
+
def wrap(self):
|
82
|
+
try:os.remove(self.outputs[0].abspath())
|
83
|
+
except OSError:pass
|
84
|
+
return old(self)
|
85
|
+
setattr(cls,'run',wrap)
|
86
|
+
rm_tgt(stlink_task)
|
87
|
+
def apply_link(self):
|
88
|
+
for x in self.features:
|
89
|
+
if x=='cprogram'and'cxx'in self.features:
|
90
|
+
x='cxxprogram'
|
91
|
+
elif x=='cshlib'and'cxx'in self.features:
|
92
|
+
x='cxxshlib'
|
93
|
+
if x in Task.classes:
|
94
|
+
if issubclass(Task.classes[x],link_task):
|
95
|
+
link=x
|
96
|
+
break
|
97
|
+
else:
|
98
|
+
return
|
99
|
+
objs=[t.outputs[0]for t in getattr(self,'compiled_tasks',[])]
|
100
|
+
self.link_task=self.create_task(link,objs)
|
101
|
+
self.link_task.add_target(self.target)
|
102
|
+
if getattr(self.bld,'is_install',None):
|
103
|
+
try:
|
104
|
+
inst_to=self.install_path
|
105
|
+
except AttributeError:
|
106
|
+
inst_to=self.link_task.__class__.inst_to
|
107
|
+
if inst_to:
|
108
|
+
self.install_task=self.bld.install_files(inst_to,self.link_task.outputs[:],env=self.env,chmod=self.link_task.chmod)
|
109
|
+
def use_rec(self,name,**kw):
|
110
|
+
if name in self.tmp_use_not or name in self.tmp_use_seen:
|
111
|
+
return
|
112
|
+
try:
|
113
|
+
y=self.bld.get_tgen_by_name(name)
|
114
|
+
except Errors.WafError:
|
115
|
+
self.uselib.append(name)
|
116
|
+
self.tmp_use_not.add(name)
|
117
|
+
return
|
118
|
+
self.tmp_use_seen.append(name)
|
119
|
+
y.post()
|
120
|
+
y.tmp_use_objects=objects=kw.get('objects',True)
|
121
|
+
y.tmp_use_stlib=stlib=kw.get('stlib',True)
|
122
|
+
try:
|
123
|
+
link_task=y.link_task
|
124
|
+
except AttributeError:
|
125
|
+
y.tmp_use_var=''
|
126
|
+
else:
|
127
|
+
objects=False
|
128
|
+
if not isinstance(y.link_task,stlink_task):
|
129
|
+
stlib=False
|
130
|
+
y.tmp_use_var='LIB'
|
131
|
+
else:
|
132
|
+
y.tmp_use_var='STLIB'
|
133
|
+
p=self.tmp_use_prec
|
134
|
+
for x in self.to_list(getattr(y,'use',[])):
|
135
|
+
try:
|
136
|
+
p[x].append(name)
|
137
|
+
except:
|
138
|
+
p[x]=[name]
|
139
|
+
self.use_rec(x,objects=objects,stlib=stlib)
|
140
|
+
def process_use(self):
|
141
|
+
use_not=self.tmp_use_not=set([])
|
142
|
+
use_seen=self.tmp_use_seen=[]
|
143
|
+
use_prec=self.tmp_use_prec={}
|
144
|
+
self.uselib=self.to_list(getattr(self,'uselib',[]))
|
145
|
+
self.includes=self.to_list(getattr(self,'includes',[]))
|
146
|
+
names=self.to_list(getattr(self,'use',[]))
|
147
|
+
for x in names:
|
148
|
+
self.use_rec(x)
|
149
|
+
for x in use_not:
|
150
|
+
if x in use_prec:
|
151
|
+
del use_prec[x]
|
152
|
+
out=[]
|
153
|
+
tmp=[]
|
154
|
+
for x in self.tmp_use_seen:
|
155
|
+
for k in use_prec.values():
|
156
|
+
if x in k:
|
157
|
+
break
|
158
|
+
else:
|
159
|
+
tmp.append(x)
|
160
|
+
while tmp:
|
161
|
+
e=tmp.pop()
|
162
|
+
out.append(e)
|
163
|
+
try:
|
164
|
+
nlst=use_prec[e]
|
165
|
+
except KeyError:
|
166
|
+
pass
|
167
|
+
else:
|
168
|
+
del use_prec[e]
|
169
|
+
for x in nlst:
|
170
|
+
for y in use_prec:
|
171
|
+
if x in use_prec[y]:
|
172
|
+
break
|
173
|
+
else:
|
174
|
+
tmp.append(x)
|
175
|
+
if use_prec:
|
176
|
+
raise Errors.WafError('Cycle detected in the use processing %r'%use_prec)
|
177
|
+
out.reverse()
|
178
|
+
link_task=getattr(self,'link_task',None)
|
179
|
+
for x in out:
|
180
|
+
y=self.bld.get_tgen_by_name(x)
|
181
|
+
var=y.tmp_use_var
|
182
|
+
if var and link_task:
|
183
|
+
if var=='LIB'or y.tmp_use_stlib:
|
184
|
+
self.env.append_value(var,[y.target[y.target.rfind(os.sep)+1:]])
|
185
|
+
self.link_task.dep_nodes.extend(y.link_task.outputs)
|
186
|
+
tmp_path=y.link_task.outputs[0].parent.path_from(self.bld.bldnode)
|
187
|
+
self.env.append_value(var+'PATH',[tmp_path])
|
188
|
+
else:
|
189
|
+
if y.tmp_use_objects:
|
190
|
+
self.add_objects_from_tgen(y)
|
191
|
+
if getattr(y,'export_includes',None):
|
192
|
+
self.includes.extend(y.to_incnodes(y.export_includes))
|
193
|
+
for x in names:
|
194
|
+
try:
|
195
|
+
y=self.bld.get_tgen_by_name(x)
|
196
|
+
except:
|
197
|
+
if not self.env['STLIB_'+x]and not x in self.uselib:
|
198
|
+
self.uselib.append(x)
|
199
|
+
else:
|
200
|
+
for k in self.to_list(getattr(y,'uselib',[])):
|
201
|
+
if not self.env['STLIB_'+k]and not k in self.uselib:
|
202
|
+
self.uselib.append(k)
|
203
|
+
def add_objects_from_tgen(self,tg):
|
204
|
+
try:
|
205
|
+
link_task=self.link_task
|
206
|
+
except AttributeError:
|
207
|
+
pass
|
208
|
+
else:
|
209
|
+
for tsk in getattr(tg,'compiled_tasks',[]):
|
210
|
+
for x in tsk.outputs:
|
211
|
+
if x.name.endswith('.o')or x.name.endswith('.obj'):
|
212
|
+
link_task.inputs.append(x)
|
213
|
+
def get_uselib_vars(self):
|
214
|
+
_vars=set([])
|
215
|
+
for x in self.features:
|
216
|
+
if x in USELIB_VARS:
|
217
|
+
_vars|=USELIB_VARS[x]
|
218
|
+
return _vars
|
219
|
+
def propagate_uselib_vars(self):
|
220
|
+
_vars=self.get_uselib_vars()
|
221
|
+
env=self.env
|
222
|
+
for x in _vars:
|
223
|
+
y=x.lower()
|
224
|
+
env.append_unique(x,self.to_list(getattr(self,y,[])))
|
225
|
+
for x in self.features:
|
226
|
+
for var in _vars:
|
227
|
+
compvar='%s_%s'%(var,x)
|
228
|
+
env.append_value(var,env[compvar])
|
229
|
+
for x in self.to_list(getattr(self,'uselib',[])):
|
230
|
+
for v in _vars:
|
231
|
+
env.append_value(v,env[v+'_'+x])
|
232
|
+
def apply_implib(self):
|
233
|
+
if not self.env.DEST_BINFMT=='pe':
|
234
|
+
return
|
235
|
+
dll=self.link_task.outputs[0]
|
236
|
+
if isinstance(self.target,Node.Node):
|
237
|
+
name=self.target.name
|
238
|
+
else:
|
239
|
+
name=os.path.split(self.target)[1]
|
240
|
+
implib=self.env['implib_PATTERN']%name
|
241
|
+
implib=dll.parent.find_or_declare(implib)
|
242
|
+
self.env.append_value('LINKFLAGS',self.env['IMPLIB_ST']%implib.bldpath())
|
243
|
+
self.link_task.outputs.append(implib)
|
244
|
+
if getattr(self,'defs',None)and self.env.DEST_BINFMT=='pe':
|
245
|
+
node=self.path.find_resource(self.defs)
|
246
|
+
if not node:
|
247
|
+
raise Errors.WafError('invalid def file %r'%self.defs)
|
248
|
+
if'msvc'in(self.env.CC_NAME,self.env.CXX_NAME):
|
249
|
+
self.env.append_value('LINKFLAGS','/def:%s'%node.path_from(self.bld.bldnode))
|
250
|
+
self.link_task.dep_nodes.append(node)
|
251
|
+
else:
|
252
|
+
self.link_task.inputs.append(node)
|
253
|
+
try:
|
254
|
+
inst_to=self.install_path
|
255
|
+
except AttributeError:
|
256
|
+
inst_to=self.link_task.__class__.inst_to
|
257
|
+
if not inst_to:
|
258
|
+
return
|
259
|
+
self.implib_install_task=self.bld.install_as('${PREFIX}/lib/%s'%implib.name,implib,self.env)
|
260
|
+
def apply_vnum(self):
|
261
|
+
if not getattr(self,'vnum','')or os.name!='posix'or self.env.DEST_BINFMT not in('elf','mac-o'):
|
262
|
+
return
|
263
|
+
link=self.link_task
|
264
|
+
nums=self.vnum.split('.')
|
265
|
+
node=link.outputs[0]
|
266
|
+
libname=node.name
|
267
|
+
if libname.endswith('.dylib'):
|
268
|
+
name3=libname.replace('.dylib','.%s.dylib'%self.vnum)
|
269
|
+
name2=libname.replace('.dylib','.%s.dylib'%nums[0])
|
270
|
+
else:
|
271
|
+
name3=libname+'.'+self.vnum
|
272
|
+
name2=libname+'.'+nums[0]
|
273
|
+
if self.env.SONAME_ST:
|
274
|
+
v=self.env.SONAME_ST%name2
|
275
|
+
self.env.append_value('LINKFLAGS',v.split())
|
276
|
+
tsk=self.create_task('vnum',node,[node.parent.find_or_declare(name2),node.parent.find_or_declare(name3)])
|
277
|
+
if getattr(self.bld,'is_install',None):
|
278
|
+
self.install_task.hasrun=Task.SKIP_ME
|
279
|
+
bld=self.bld
|
280
|
+
path=self.install_task.dest
|
281
|
+
t1=bld.install_as(path+os.sep+name3,node,env=self.env)
|
282
|
+
t2=bld.symlink_as(path+os.sep+name2,name3)
|
283
|
+
t3=bld.symlink_as(path+os.sep+libname,name3)
|
284
|
+
self.vnum_install_task=(t1,t2,t3)
|
285
|
+
class vnum(Task.Task):
|
286
|
+
color='CYAN'
|
287
|
+
quient=True
|
288
|
+
ext_in=['.bin']
|
289
|
+
def run(self):
|
290
|
+
for x in self.outputs:
|
291
|
+
path=x.abspath()
|
292
|
+
try:
|
293
|
+
os.remove(path)
|
294
|
+
except OSError:
|
295
|
+
pass
|
296
|
+
try:
|
297
|
+
os.symlink(self.inputs[0].name,path)
|
298
|
+
except OSError:
|
299
|
+
return 1
|
300
|
+
class fake_shlib(link_task):
|
301
|
+
def runnable_status(self):
|
302
|
+
for t in self.run_after:
|
303
|
+
if not t.hasrun:
|
304
|
+
return Task.ASK_LATER
|
305
|
+
for x in self.outputs:
|
306
|
+
x.sig=Utils.h_file(x.abspath())
|
307
|
+
return Task.SKIP_ME
|
308
|
+
class fake_stlib(stlink_task):
|
309
|
+
def runnable_status(self):
|
310
|
+
for t in self.run_after:
|
311
|
+
if not t.hasrun:
|
312
|
+
return Task.ASK_LATER
|
313
|
+
for x in self.outputs:
|
314
|
+
x.sig=Utils.h_file(x.abspath())
|
315
|
+
return Task.SKIP_ME
|
316
|
+
def read_shlib(self,name,paths=[]):
|
317
|
+
return self(name=name,features='fake_lib',lib_paths=paths,lib_type='shlib')
|
318
|
+
def read_stlib(self,name,paths=[]):
|
319
|
+
return self(name=name,features='fake_lib',lib_paths=paths,lib_type='stlib')
|
320
|
+
lib_patterns={'shlib':['lib%s.so','%s.so','lib%s.dll','%s.dll'],'stlib':['lib%s.a','%s.a','lib%s.dll','%s.dll','lib%s.lib','%s.lib'],}
|
321
|
+
def process_lib(self):
|
322
|
+
node=None
|
323
|
+
names=[x%self.name for x in lib_patterns[self.lib_type]]
|
324
|
+
for x in self.lib_paths+[self.path,'/usr/lib64','/usr/lib','/usr/local/lib64','/usr/local/lib']:
|
325
|
+
if not isinstance(x,Node.Node):
|
326
|
+
x=self.bld.root.find_node(x)or self.path.find_node(x)
|
327
|
+
if not x:
|
328
|
+
continue
|
329
|
+
for y in names:
|
330
|
+
node=x.find_node(y)
|
331
|
+
if node:
|
332
|
+
node.sig=Utils.h_file(node.abspath())
|
333
|
+
break
|
334
|
+
else:
|
335
|
+
continue
|
336
|
+
break
|
337
|
+
else:
|
338
|
+
raise Errors.WafError('could not find library %r'%self.name)
|
339
|
+
self.link_task=self.create_task('fake_%s'%self.lib_type,[],[node])
|
340
|
+
self.target=self.name
|
341
|
+
class fake_o(Task.Task):
|
342
|
+
def runnable_status(self):
|
343
|
+
return Task.SKIP_ME
|
344
|
+
def add_those_o_files(self,node):
|
345
|
+
tsk=self.create_task('fake_o',[],node)
|
346
|
+
try:
|
347
|
+
self.compiled_tasks.append(tsk)
|
348
|
+
except AttributeError:
|
349
|
+
self.compiled_tasks=[tsk]
|
350
|
+
|
351
|
+
taskgen_method(create_compiled_task)
|
352
|
+
taskgen_method(to_incnodes)
|
353
|
+
feature('c','cxx','d','go','asm','fc','includes')(apply_incpaths)
|
354
|
+
after_method('propagate_uselib_vars','process_source')(apply_incpaths)
|
355
|
+
feature('c','cxx','d','go','fc','asm')(apply_link)
|
356
|
+
after_method('process_source')(apply_link)
|
357
|
+
taskgen_method(use_rec)
|
358
|
+
feature('c','cxx','d','use','fc')(process_use)
|
359
|
+
before_method('apply_incpaths','propagate_uselib_vars')(process_use)
|
360
|
+
after_method('apply_link','process_source')(process_use)
|
361
|
+
taskgen_method(add_objects_from_tgen)
|
362
|
+
taskgen_method(get_uselib_vars)
|
363
|
+
feature('c','cxx','d','fc','javac','cs','uselib')(propagate_uselib_vars)
|
364
|
+
after_method('process_use')(propagate_uselib_vars)
|
365
|
+
feature('cshlib','cxxshlib','fcshlib')(apply_implib)
|
366
|
+
after_method('apply_link')(apply_implib)
|
367
|
+
feature('cshlib','cxxshlib','dshlib','fcshlib','vnum')(apply_vnum)
|
368
|
+
after_method('apply_link')(apply_vnum)
|
369
|
+
conf(read_shlib)
|
370
|
+
conf(read_stlib)
|
371
|
+
feature('fake_lib')(process_lib)
|
372
|
+
extension('.o','.obj')(add_those_o_files)
|