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/gnu_dirs.py
ADDED
@@ -0,0 +1,65 @@
|
|
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 os
|
6
|
+
from waflib import Utils,Options,Context
|
7
|
+
_options=[x.split(', ')for x in'''
|
8
|
+
bindir, user executables, ${EXEC_PREFIX}/bin
|
9
|
+
sbindir, system admin executables, ${EXEC_PREFIX}/sbin
|
10
|
+
libexecdir, program executables, ${EXEC_PREFIX}/libexec
|
11
|
+
sysconfdir, read-only single-machine data, ${PREFIX}/etc
|
12
|
+
sharedstatedir, modifiable architecture-independent data, ${PREFIX}/com
|
13
|
+
localstatedir, modifiable single-machine data, ${PREFIX}/var
|
14
|
+
libdir, object code libraries, ${EXEC_PREFIX}/lib
|
15
|
+
includedir, C header files, ${PREFIX}/include
|
16
|
+
oldincludedir, C header files for non-gcc, /usr/include
|
17
|
+
datarootdir, read-only arch.-independent data root, ${PREFIX}/share
|
18
|
+
datadir, read-only architecture-independent data, ${DATAROOTDIR}
|
19
|
+
infodir, info documentation, ${DATAROOTDIR}/info
|
20
|
+
localedir, locale-dependent data, ${DATAROOTDIR}/locale
|
21
|
+
mandir, man documentation, ${DATAROOTDIR}/man
|
22
|
+
docdir, documentation root, ${DATAROOTDIR}/doc/${PACKAGE}
|
23
|
+
htmldir, html documentation, ${DOCDIR}
|
24
|
+
dvidir, dvi documentation, ${DOCDIR}
|
25
|
+
pdfdir, pdf documentation, ${DOCDIR}
|
26
|
+
psdir, ps documentation, ${DOCDIR}
|
27
|
+
'''.split('\n')if x]
|
28
|
+
def configure(conf):
|
29
|
+
def get_param(varname,default):
|
30
|
+
return getattr(Options.options,varname,'')or default
|
31
|
+
env=conf.env
|
32
|
+
conf.env.LIBDIR=conf.env.BINDIR=[]
|
33
|
+
env['EXEC_PREFIX']=get_param('EXEC_PREFIX',env['PREFIX'])
|
34
|
+
env['PACKAGE']=getattr(Context.g_module,'APPNAME',None)or env['PACKAGE']
|
35
|
+
complete=False
|
36
|
+
iter=0
|
37
|
+
while not complete and iter<len(_options)+1:
|
38
|
+
iter+=1
|
39
|
+
complete=True
|
40
|
+
for name,help,default in _options:
|
41
|
+
name=name.upper()
|
42
|
+
if not env[name]:
|
43
|
+
try:
|
44
|
+
env[name]=Utils.subst_vars(get_param(name,default).replace('/',os.sep),env)
|
45
|
+
except TypeError:
|
46
|
+
complete=False
|
47
|
+
if not complete:
|
48
|
+
lst=[name for name,_,_ in _options if not env[name.upper()]]
|
49
|
+
raise conf.errors.WafError('Variable substitution failure %r'%lst)
|
50
|
+
def options(opt):
|
51
|
+
inst_dir=opt.add_option_group('Installation directories','By default, "waf install" will put the files in\
|
52
|
+
"/usr/local/bin", "/usr/local/lib" etc. An installation prefix other\
|
53
|
+
than "/usr/local" can be given using "--prefix", for example "--prefix=$HOME"')
|
54
|
+
for k in('--prefix','--destdir'):
|
55
|
+
option=opt.parser.get_option(k)
|
56
|
+
if option:
|
57
|
+
opt.parser.remove_option(k)
|
58
|
+
inst_dir.add_option(option)
|
59
|
+
inst_dir.add_option('--exec-prefix',help='installation prefix [Default: ${PREFIX}]',default='',dest='EXEC_PREFIX')
|
60
|
+
dirs_options=opt.add_option_group('Pre-defined installation directories','')
|
61
|
+
for name,help,default in _options:
|
62
|
+
option_name='--'+name
|
63
|
+
str_default=default
|
64
|
+
str_help='%s [Default: %s]'%(help,str_default)
|
65
|
+
dirs_options.add_option(option_name,help=str_help,default='',dest=name.upper())
|
@@ -0,0 +1,98 @@
|
|
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 os,sys
|
6
|
+
from waflib import Configure,Options,Utils
|
7
|
+
from waflib.Tools import ccroot,ar
|
8
|
+
from waflib.Configure import conf
|
9
|
+
def find_gxx(conf):
|
10
|
+
cxx=conf.find_program(['g++','c++'],var='CXX')
|
11
|
+
cxx=conf.cmd_to_list(cxx)
|
12
|
+
conf.get_cc_version(cxx,gcc=True)
|
13
|
+
conf.env.CXX_NAME='gcc'
|
14
|
+
conf.env.CXX=cxx
|
15
|
+
def gxx_common_flags(conf):
|
16
|
+
v=conf.env
|
17
|
+
v['CXX_SRC_F']=[]
|
18
|
+
v['CXX_TGT_F']=['-c','-o']
|
19
|
+
if not v['LINK_CXX']:v['LINK_CXX']=v['CXX']
|
20
|
+
v['CXXLNK_SRC_F']=[]
|
21
|
+
v['CXXLNK_TGT_F']=['-o']
|
22
|
+
v['CPPPATH_ST']='-I%s'
|
23
|
+
v['DEFINES_ST']='-D%s'
|
24
|
+
v['LIB_ST']='-l%s'
|
25
|
+
v['LIBPATH_ST']='-L%s'
|
26
|
+
v['STLIB_ST']='-l%s'
|
27
|
+
v['STLIBPATH_ST']='-L%s'
|
28
|
+
v['RPATH_ST']='-Wl,-rpath,%s'
|
29
|
+
v['SONAME_ST']='-Wl,-h,%s'
|
30
|
+
v['SHLIB_MARKER']='-Wl,-Bdynamic'
|
31
|
+
v['STLIB_MARKER']='-Wl,-Bstatic'
|
32
|
+
v['cxxprogram_PATTERN']='%s'
|
33
|
+
v['CXXFLAGS_cxxshlib']=['-fPIC']
|
34
|
+
v['LINKFLAGS_cxxshlib']=['-shared']
|
35
|
+
v['cxxshlib_PATTERN']='lib%s.so'
|
36
|
+
v['LINKFLAGS_cxxstlib']=['-Wl,-Bstatic']
|
37
|
+
v['cxxstlib_PATTERN']='lib%s.a'
|
38
|
+
v['LINKFLAGS_MACBUNDLE']=['-bundle','-undefined','dynamic_lookup']
|
39
|
+
v['CXXFLAGS_MACBUNDLE']=['-fPIC']
|
40
|
+
v['macbundle_PATTERN']='%s.bundle'
|
41
|
+
def gxx_modifier_win32(conf):
|
42
|
+
v=conf.env
|
43
|
+
v['cxxprogram_PATTERN']='%s.exe'
|
44
|
+
v['cxxshlib_PATTERN']='%s.dll'
|
45
|
+
v['implib_PATTERN']='lib%s.dll.a'
|
46
|
+
v['IMPLIB_ST']='-Wl,--out-implib,%s'
|
47
|
+
v['CXXFLAGS_cxxshlib']=[]
|
48
|
+
v.append_value('CXXFLAGS_cxxshlib',['-DDLL_EXPORT'])
|
49
|
+
v.append_value('LINKFLAGS',['-Wl,--enable-auto-import'])
|
50
|
+
def gxx_modifier_cygwin(conf):
|
51
|
+
gxx_modifier_win32(conf)
|
52
|
+
v=conf.env
|
53
|
+
v['cxxshlib_PATTERN']='cyg%s.dll'
|
54
|
+
v.append_value('LINKFLAGS_cxxshlib',['-Wl,--enable-auto-image-base'])
|
55
|
+
v['CXXFLAGS_cxxshlib']=[]
|
56
|
+
def gxx_modifier_darwin(conf):
|
57
|
+
v=conf.env
|
58
|
+
v['CXXFLAGS_cxxshlib']=['-fPIC','-compatibility_version','1','-current_version','1']
|
59
|
+
v['LINKFLAGS_cxxshlib']=['-dynamiclib']
|
60
|
+
v['cxxshlib_PATTERN']='lib%s.dylib'
|
61
|
+
v['FRAMEWORKPATH_ST']='-F%s'
|
62
|
+
v['FRAMEWORK_ST']=['-framework']
|
63
|
+
v['ARCH_ST']=['-arch']
|
64
|
+
v['LINKFLAGS_cxxstlib']=[]
|
65
|
+
v['SHLIB_MARKER']=[]
|
66
|
+
v['STLIB_MARKER']=[]
|
67
|
+
v['SONAME_ST']=[]
|
68
|
+
def gxx_modifier_aix(conf):
|
69
|
+
v=conf.env
|
70
|
+
v['LINKFLAGS_cxxprogram']=['-Wl,-brtl']
|
71
|
+
v['LINKFLAGS_cxxshlib']=['-shared','-Wl,-brtl,-bexpfull']
|
72
|
+
v['SHLIB_MARKER']=[]
|
73
|
+
def gxx_modifier_hpux(conf):
|
74
|
+
v=conf.env
|
75
|
+
v['SHLIB_MARKER']=[]
|
76
|
+
v['CFLAGS_cxxshlib']=['-fPIC','-DPIC']
|
77
|
+
v['cxxshlib_PATTERN']='lib%s.sl'
|
78
|
+
def gxx_modifier_platform(conf):
|
79
|
+
gxx_modifier_func=getattr(conf,'gxx_modifier_'+conf.env.DEST_OS,None)
|
80
|
+
if gxx_modifier_func:
|
81
|
+
gxx_modifier_func()
|
82
|
+
def configure(conf):
|
83
|
+
conf.find_gxx()
|
84
|
+
conf.find_ar()
|
85
|
+
conf.gxx_common_flags()
|
86
|
+
conf.gxx_modifier_platform()
|
87
|
+
conf.cxx_load_tools()
|
88
|
+
conf.cxx_add_flags()
|
89
|
+
conf.link_add_flags()
|
90
|
+
|
91
|
+
conf(find_gxx)
|
92
|
+
conf(gxx_common_flags)
|
93
|
+
conf(gxx_modifier_win32)
|
94
|
+
conf(gxx_modifier_cygwin)
|
95
|
+
conf(gxx_modifier_darwin)
|
96
|
+
conf(gxx_modifier_aix)
|
97
|
+
conf(gxx_modifier_hpux)
|
98
|
+
conf(gxx_modifier_platform)
|
Binary file
|
@@ -0,0 +1,31 @@
|
|
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 os,sys
|
6
|
+
from waflib.Tools import ccroot,ar,gcc
|
7
|
+
from waflib.Configure import conf
|
8
|
+
def find_icc(conf):
|
9
|
+
if sys.platform=='cygwin':
|
10
|
+
conf.fatal('The Intel compiler does not work on Cygwin')
|
11
|
+
v=conf.env
|
12
|
+
cc=None
|
13
|
+
if v['CC']:cc=v['CC']
|
14
|
+
elif'CC'in conf.environ:cc=conf.environ['CC']
|
15
|
+
if not cc:cc=conf.find_program('icc',var='CC')
|
16
|
+
if not cc:cc=conf.find_program('ICL',var='CC')
|
17
|
+
if not cc:conf.fatal('Intel C Compiler (icc) was not found')
|
18
|
+
cc=conf.cmd_to_list(cc)
|
19
|
+
conf.get_cc_version(cc,icc=True)
|
20
|
+
v['CC']=cc
|
21
|
+
v['CC_NAME']='icc'
|
22
|
+
def configure(conf):
|
23
|
+
conf.find_icc()
|
24
|
+
conf.find_ar()
|
25
|
+
conf.gcc_common_flags()
|
26
|
+
conf.gcc_modifier_platform()
|
27
|
+
conf.cc_load_tools()
|
28
|
+
conf.cc_add_flags()
|
29
|
+
conf.link_add_flags()
|
30
|
+
|
31
|
+
conf(find_icc)
|
@@ -0,0 +1,30 @@
|
|
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 os,sys
|
6
|
+
from waflib.Tools import ccroot,ar,gxx
|
7
|
+
from waflib.Configure import conf
|
8
|
+
def find_icpc(conf):
|
9
|
+
if sys.platform=='cygwin':
|
10
|
+
conf.fatal('The Intel compiler does not work on Cygwin')
|
11
|
+
v=conf.env
|
12
|
+
cxx=None
|
13
|
+
if v['CXX']:cxx=v['CXX']
|
14
|
+
elif'CXX'in conf.environ:cxx=conf.environ['CXX']
|
15
|
+
if not cxx:cxx=conf.find_program('icpc',var='CXX')
|
16
|
+
if not cxx:conf.fatal('Intel C++ Compiler (icpc) was not found')
|
17
|
+
cxx=conf.cmd_to_list(cxx)
|
18
|
+
conf.get_cc_version(cxx,icc=True)
|
19
|
+
v['CXX']=cxx
|
20
|
+
v['CXX_NAME']='icc'
|
21
|
+
def configure(conf):
|
22
|
+
conf.find_icpc()
|
23
|
+
conf.find_ar()
|
24
|
+
conf.gxx_common_flags()
|
25
|
+
conf.gxx_modifier_platform()
|
26
|
+
conf.cxx_load_tools()
|
27
|
+
conf.cxx_add_flags()
|
28
|
+
conf.link_add_flags()
|
29
|
+
|
30
|
+
conf(find_icpc)
|
data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/ifort.py
ADDED
@@ -0,0 +1,42 @@
|
|
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 re
|
6
|
+
from waflib import Utils
|
7
|
+
from waflib.Tools import fc,fc_config,fc_scan
|
8
|
+
from waflib.Configure import conf
|
9
|
+
def find_ifort(conf):
|
10
|
+
fc=conf.find_program('ifort',var='FC')
|
11
|
+
fc=conf.cmd_to_list(fc)
|
12
|
+
conf.get_ifort_version(fc)
|
13
|
+
conf.env.FC_NAME='IFORT'
|
14
|
+
def ifort_modifier_cygwin(conf):
|
15
|
+
raise NotImplementedError("Ifort on cygwin not yet implemented")
|
16
|
+
def ifort_modifier_platform(conf):
|
17
|
+
dest_os=conf.env['DEST_OS']or Utils.unversioned_sys_platform()
|
18
|
+
ifort_modifier_func=getattr(conf,'ifort_modifier_'+dest_os,None)
|
19
|
+
if ifort_modifier_func:
|
20
|
+
ifort_modifier_func()
|
21
|
+
def get_ifort_version(conf,fc):
|
22
|
+
version_re=re.compile(r"ifort\s*\(IFORT\)\s*(?P<major>\d*)\.(?P<minor>\d*)",re.I).search
|
23
|
+
cmd=fc+['--version']
|
24
|
+
out,err=fc_config.getoutput(conf,cmd,stdin=False)
|
25
|
+
if out:
|
26
|
+
match=version_re(out)
|
27
|
+
else:
|
28
|
+
match=version_re(err)
|
29
|
+
if not match:
|
30
|
+
conf.fatal('cannot determine ifort version.')
|
31
|
+
k=match.groupdict()
|
32
|
+
conf.env['FC_VERSION']=(k['major'],k['minor'])
|
33
|
+
def configure(conf):
|
34
|
+
conf.find_ifort()
|
35
|
+
conf.find_ar()
|
36
|
+
conf.fc_flags()
|
37
|
+
conf.ifort_modifier_platform()
|
38
|
+
|
39
|
+
conf(find_ifort)
|
40
|
+
conf(ifort_modifier_cygwin)
|
41
|
+
conf(ifort_modifier_platform)
|
42
|
+
conf(get_ifort_version)
|
data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/intltool.py
ADDED
@@ -0,0 +1,78 @@
|
|
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 os,re
|
6
|
+
from waflib import Configure,TaskGen,Task,Utils,Runner,Options,Build,Logs
|
7
|
+
import waflib.Tools.ccroot
|
8
|
+
from waflib.TaskGen import feature,before_method
|
9
|
+
from waflib.Logs import error
|
10
|
+
def apply_intltool_in_f(self):
|
11
|
+
try:self.meths.remove('process_source')
|
12
|
+
except ValueError:pass
|
13
|
+
if not self.env.LOCALEDIR:
|
14
|
+
self.env.LOCALEDIR=self.env.PREFIX+'/share/locale'
|
15
|
+
for i in self.to_list(self.source):
|
16
|
+
node=self.path.find_resource(i)
|
17
|
+
podir=getattr(self,'podir','po')
|
18
|
+
podirnode=self.path.find_dir(podir)
|
19
|
+
if not podirnode:
|
20
|
+
error("could not find the podir %r"%podir)
|
21
|
+
continue
|
22
|
+
cache=getattr(self,'intlcache','.intlcache')
|
23
|
+
self.env['INTLCACHE']=os.path.join(self.path.bldpath(),podir,cache)
|
24
|
+
self.env['INTLPODIR']=podirnode.bldpath()
|
25
|
+
self.env['INTLFLAGS']=getattr(self,'flags',['-q','-u','-c'])
|
26
|
+
task=self.create_task('intltool',node,node.change_ext(''))
|
27
|
+
inst=getattr(self,'install_path','${LOCALEDIR}')
|
28
|
+
if inst:
|
29
|
+
self.bld.install_files(inst,task.outputs)
|
30
|
+
def apply_intltool_po(self):
|
31
|
+
try:self.meths.remove('process_source')
|
32
|
+
except ValueError:pass
|
33
|
+
if not self.env.LOCALEDIR:
|
34
|
+
self.env.LOCALEDIR=self.env.PREFIX+'/share/locale'
|
35
|
+
appname=getattr(self,'appname','set_your_app_name')
|
36
|
+
podir=getattr(self,'podir','')
|
37
|
+
inst=getattr(self,'install_path','${LOCALEDIR}')
|
38
|
+
linguas=self.path.find_node(os.path.join(podir,'LINGUAS'))
|
39
|
+
if linguas:
|
40
|
+
file=open(linguas.abspath())
|
41
|
+
langs=[]
|
42
|
+
for line in file.readlines():
|
43
|
+
if not line.startswith('#'):
|
44
|
+
langs+=line.split()
|
45
|
+
file.close()
|
46
|
+
re_linguas=re.compile('[-a-zA-Z_@.]+')
|
47
|
+
for lang in langs:
|
48
|
+
if re_linguas.match(lang):
|
49
|
+
node=self.path.find_resource(os.path.join(podir,re_linguas.match(lang).group()+'.po'))
|
50
|
+
task=self.create_task('po',node,node.change_ext('.mo'))
|
51
|
+
if inst:
|
52
|
+
filename=task.outputs[0].name
|
53
|
+
(langname,ext)=os.path.splitext(filename)
|
54
|
+
inst_file=inst+os.sep+langname+os.sep+'LC_MESSAGES'+os.sep+appname+'.mo'
|
55
|
+
self.bld.install_as(inst_file,task.outputs[0],chmod=getattr(self,'chmod',Utils.O644),env=task.env)
|
56
|
+
else:
|
57
|
+
Logs.pprint('RED',"Error no LINGUAS file found in po directory")
|
58
|
+
class po(Task.Task):
|
59
|
+
run_str='${MSGFMT} -o ${TGT} ${SRC}'
|
60
|
+
color='BLUE'
|
61
|
+
class intltool(Task.Task):
|
62
|
+
run_str='${INTLTOOL} ${INTLFLAGS} ${INTLCACHE} ${INTLPODIR} ${SRC} ${TGT}'
|
63
|
+
color='BLUE'
|
64
|
+
def configure(conf):
|
65
|
+
conf.find_program('msgfmt',var='MSGFMT')
|
66
|
+
conf.find_perl_program('intltool-merge',var='INTLTOOL')
|
67
|
+
prefix=conf.env.PREFIX
|
68
|
+
datadir=conf.env.DATADIR
|
69
|
+
if not datadir:
|
70
|
+
datadir=os.path.join(prefix,'share')
|
71
|
+
conf.define('LOCALEDIR',os.path.join(datadir,'locale').replace('\\','\\\\'))
|
72
|
+
conf.define('DATADIR',datadir.replace('\\','\\\\'))
|
73
|
+
if conf.env.CC or conf.env.CXX:
|
74
|
+
conf.check(header_name='locale.h')
|
75
|
+
|
76
|
+
before_method('process_source')(apply_intltool_in_f)
|
77
|
+
feature('intltool_in')(apply_intltool_in_f)
|
78
|
+
feature('intltool_po')(apply_intltool_po)
|
data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/irixcc.py
ADDED
@@ -0,0 +1,49 @@
|
|
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 os
|
6
|
+
from waflib import Utils
|
7
|
+
from waflib.Tools import ccroot,ar
|
8
|
+
from waflib.Configure import conf
|
9
|
+
def find_irixcc(conf):
|
10
|
+
v=conf.env
|
11
|
+
cc=None
|
12
|
+
if v['CC']:cc=v['CC']
|
13
|
+
elif'CC'in conf.environ:cc=conf.environ['CC']
|
14
|
+
if not cc:cc=conf.find_program('cc',var='CC')
|
15
|
+
if not cc:conf.fatal('irixcc was not found')
|
16
|
+
cc=conf.cmd_to_list(cc)
|
17
|
+
try:
|
18
|
+
conf.cmd_and_log(cc+['-version'])
|
19
|
+
except:
|
20
|
+
conf.fatal('%r -version could not be executed'%cc)
|
21
|
+
v['CC']=cc
|
22
|
+
v['CC_NAME']='irix'
|
23
|
+
def irixcc_common_flags(conf):
|
24
|
+
v=conf.env
|
25
|
+
v['CC_SRC_F']=''
|
26
|
+
v['CC_TGT_F']=['-c','-o']
|
27
|
+
v['CPPPATH_ST']='-I%s'
|
28
|
+
v['DEFINES_ST']='-D%s'
|
29
|
+
if not v['LINK_CC']:v['LINK_CC']=v['CC']
|
30
|
+
v['CCLNK_SRC_F']=''
|
31
|
+
v['CCLNK_TGT_F']=['-o']
|
32
|
+
v['LIB_ST']='-l%s'
|
33
|
+
v['LIBPATH_ST']='-L%s'
|
34
|
+
v['STLIB_ST']='-l%s'
|
35
|
+
v['STLIBPATH_ST']='-L%s'
|
36
|
+
v['cprogram_PATTERN']='%s'
|
37
|
+
v['cshlib_PATTERN']='lib%s.so'
|
38
|
+
v['cstlib_PATTERN']='lib%s.a'
|
39
|
+
def configure(conf):
|
40
|
+
conf.find_irixcc()
|
41
|
+
conf.find_cpp()
|
42
|
+
conf.find_ar()
|
43
|
+
conf.irixcc_common_flags()
|
44
|
+
conf.cc_load_tools()
|
45
|
+
conf.cc_add_flags()
|
46
|
+
conf.link_add_flags()
|
47
|
+
|
48
|
+
conf(find_irixcc)
|
49
|
+
conf(irixcc_common_flags)
|
data/vendor/ux-trie/ux-0.1.9/.waf-1.6.8-3e3391c5f23fbabad81e6d17c63a1b1e/waflib/Tools/javaw.py
ADDED
@@ -0,0 +1,272 @@
|
|
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,re
|
8
|
+
from waflib.Configure import conf
|
9
|
+
from waflib import TaskGen,Task,Utils,Options,Build,Errors,Node
|
10
|
+
from waflib.TaskGen import feature,before_method,after_method
|
11
|
+
from waflib.Tools import ccroot
|
12
|
+
ccroot.USELIB_VARS['javac']=set(['CLASSPATH','JAVACFLAGS'])
|
13
|
+
SOURCE_RE='**/*.java'
|
14
|
+
JAR_RE='**/*'
|
15
|
+
re_verbose=re.compile(r'^\[.*?\]\n*',re.M)
|
16
|
+
re_classes=re.compile(r'\[wrote (?:RegularFileObject\[)*(.*?\.class)\]')
|
17
|
+
class_check_source='''
|
18
|
+
public class Test {
|
19
|
+
public static void main(String[] argv) {
|
20
|
+
Class lib;
|
21
|
+
if (argv.length < 1) {
|
22
|
+
System.err.println("Missing argument");
|
23
|
+
System.exit(77);
|
24
|
+
}
|
25
|
+
try {
|
26
|
+
lib = Class.forName(argv[0]);
|
27
|
+
} catch (ClassNotFoundException e) {
|
28
|
+
System.err.println("ClassNotFoundException");
|
29
|
+
System.exit(1);
|
30
|
+
}
|
31
|
+
lib = null;
|
32
|
+
System.exit(0);
|
33
|
+
}
|
34
|
+
}
|
35
|
+
'''
|
36
|
+
def apply_java(self):
|
37
|
+
Utils.def_attrs(self,jarname='',classpath='',sourcepath='.',srcdir='.',jar_mf_attributes={},jar_mf_classpath=[])
|
38
|
+
nodes_lst=[]
|
39
|
+
outdir=getattr(self,'outdir',None)
|
40
|
+
if outdir:
|
41
|
+
if not isinstance(outdir,Node.Node):
|
42
|
+
outdir=self.path.get_bld().make_node(self.outdir)
|
43
|
+
else:
|
44
|
+
outdir=self.path.get_bld()
|
45
|
+
outdir.mkdir()
|
46
|
+
self.env['OUTDIR']=outdir.abspath()
|
47
|
+
self.javac_task=tsk=self.create_task('javac')
|
48
|
+
tmp=[]
|
49
|
+
srcdir=getattr(self,'srcdir','')
|
50
|
+
if isinstance(srcdir,Node.Node):
|
51
|
+
srcdir=[srcdir]
|
52
|
+
for x in Utils.to_list(srcdir):
|
53
|
+
if isinstance(x,Node.Node):
|
54
|
+
y=x
|
55
|
+
else:
|
56
|
+
y=self.path.find_dir(x)
|
57
|
+
if not y:
|
58
|
+
self.bld.fatal('Could not find the folder %s from %s'%(x,self.path))
|
59
|
+
tmp.append(y)
|
60
|
+
tsk.srcdir=tmp
|
61
|
+
if getattr(self,'compat',None):
|
62
|
+
tsk.env.append_value('JAVACFLAGS',['-source',self.compat])
|
63
|
+
if hasattr(self,'sourcepath'):
|
64
|
+
fold=[isinstance(x,Node.Node)and x or self.path.find_dir(x)for x in self.to_list(self.sourcepath)]
|
65
|
+
names=os.pathsep.join([x.srcpath()for x in fold])
|
66
|
+
else:
|
67
|
+
names=[x.srcpath()for x in tsk.srcdir]
|
68
|
+
if names:
|
69
|
+
tsk.env.append_value('JAVACFLAGS',['-sourcepath',names])
|
70
|
+
def use_javac_files(self):
|
71
|
+
lst=[]
|
72
|
+
self.uselib=self.to_list(getattr(self,'uselib',[]))
|
73
|
+
names=self.to_list(getattr(self,'use',[]))
|
74
|
+
get=self.bld.get_tgen_by_name
|
75
|
+
for x in names:
|
76
|
+
try:
|
77
|
+
y=get(x)
|
78
|
+
except:
|
79
|
+
self.uselib.append(x)
|
80
|
+
else:
|
81
|
+
y.post()
|
82
|
+
lst.append(y.jar_task.outputs[0].abspath())
|
83
|
+
self.javac_task.set_run_after(y.jar_task)
|
84
|
+
if lst:
|
85
|
+
self.env.append_value('CLASSPATH',lst)
|
86
|
+
def set_classpath(self):
|
87
|
+
self.env.append_value('CLASSPATH',getattr(self,'classpath',[]))
|
88
|
+
for x in self.tasks:
|
89
|
+
x.env.CLASSPATH=os.pathsep.join(self.env.CLASSPATH)+os.pathsep
|
90
|
+
def jar_files(self):
|
91
|
+
destfile=getattr(self,'destfile','test.jar')
|
92
|
+
jaropts=getattr(self,'jaropts',[])
|
93
|
+
manifest=getattr(self,'manifest',None)
|
94
|
+
basedir=getattr(self,'basedir',None)
|
95
|
+
if basedir:
|
96
|
+
if not isinstance(self.basedir,Node.Node):
|
97
|
+
basedir=self.path.get_bld().make_node(basedir)
|
98
|
+
else:
|
99
|
+
basedir=self.path.get_bld()
|
100
|
+
if not basedir:
|
101
|
+
self.bld.fatal('Could not find the basedir %r for %r'%(self.basedir,self))
|
102
|
+
self.jar_task=tsk=self.create_task('jar_create')
|
103
|
+
if manifest:
|
104
|
+
jarcreate=getattr(self,'jarcreate','cfm')
|
105
|
+
node=self.path.find_node(manifest)
|
106
|
+
tsk.dep_nodes.append(node)
|
107
|
+
jaropts.insert(0,node.abspath())
|
108
|
+
else:
|
109
|
+
jarcreate=getattr(self,'jarcreate','cf')
|
110
|
+
if not isinstance(destfile,Node.Node):
|
111
|
+
destfile=self.path.find_or_declare(destfile)
|
112
|
+
if not destfile:
|
113
|
+
self.bld.fatal('invalid destfile %r for %r'%(destfile,self))
|
114
|
+
tsk.set_outputs(destfile)
|
115
|
+
tsk.basedir=basedir
|
116
|
+
jaropts.append('-C')
|
117
|
+
jaropts.append(basedir.bldpath())
|
118
|
+
jaropts.append('.')
|
119
|
+
tsk.env['JAROPTS']=jaropts
|
120
|
+
tsk.env['JARCREATE']=jarcreate
|
121
|
+
if getattr(self,'javac_task',None):
|
122
|
+
tsk.set_run_after(self.javac_task)
|
123
|
+
def use_jar_files(self):
|
124
|
+
lst=[]
|
125
|
+
self.uselib=self.to_list(getattr(self,'uselib',[]))
|
126
|
+
names=self.to_list(getattr(self,'use',[]))
|
127
|
+
get=self.bld.get_tgen_by_name
|
128
|
+
for x in names:
|
129
|
+
try:
|
130
|
+
y=get(x)
|
131
|
+
except:
|
132
|
+
self.uselib.append(x)
|
133
|
+
else:
|
134
|
+
y.post()
|
135
|
+
self.jar_task.run_after.update(y.tasks)
|
136
|
+
class jar_create(Task.Task):
|
137
|
+
color='GREEN'
|
138
|
+
run_str='${JAR} ${JARCREATE} ${TGT} ${JAROPTS}'
|
139
|
+
def runnable_status(self):
|
140
|
+
for t in self.run_after:
|
141
|
+
if not t.hasrun:
|
142
|
+
return Task.ASK_LATER
|
143
|
+
if not self.inputs:
|
144
|
+
global JAR_RE
|
145
|
+
try:
|
146
|
+
self.inputs=[x for x in self.basedir.ant_glob(JAR_RE,remove=False)if id(x)!=id(self.outputs[0])]
|
147
|
+
except:
|
148
|
+
raise Errors.WafError('Could not find the basedir %r for %r'%(self.basedir,self))
|
149
|
+
return super(jar_create,self).runnable_status()
|
150
|
+
class javac(Task.Task):
|
151
|
+
color='BLUE'
|
152
|
+
nocache=True
|
153
|
+
vars=['CLASSPATH','JAVACFLAGS','JAVAC','OUTDIR']
|
154
|
+
def runnable_status(self):
|
155
|
+
for t in self.run_after:
|
156
|
+
if not t.hasrun:
|
157
|
+
return Task.ASK_LATER
|
158
|
+
if not self.inputs:
|
159
|
+
global SOURCE_RE
|
160
|
+
self.inputs=[]
|
161
|
+
for x in self.srcdir:
|
162
|
+
self.inputs.extend(x.ant_glob(SOURCE_RE,remove=False))
|
163
|
+
return super(javac,self).runnable_status()
|
164
|
+
def run(self):
|
165
|
+
env=self.env
|
166
|
+
gen=self.generator
|
167
|
+
bld=gen.bld
|
168
|
+
wd=bld.bldnode.abspath()
|
169
|
+
def to_list(xx):
|
170
|
+
if isinstance(xx,str):return[xx]
|
171
|
+
return xx
|
172
|
+
self.last_cmd=lst=[]
|
173
|
+
lst.extend(to_list(env['JAVAC']))
|
174
|
+
lst.extend(['-classpath'])
|
175
|
+
lst.extend(to_list(env['CLASSPATH']))
|
176
|
+
lst.extend(['-d'])
|
177
|
+
lst.extend(to_list(env['OUTDIR']))
|
178
|
+
lst.extend(to_list(env['JAVACFLAGS']))
|
179
|
+
lst.extend([a.path_from(bld.bldnode)for a in self.inputs])
|
180
|
+
lst=[x for x in lst if x]
|
181
|
+
try:
|
182
|
+
self.out=self.generator.bld.cmd_and_log(lst,cwd=wd,env=env.env or None,output=0,quiet=0)[1]
|
183
|
+
except:
|
184
|
+
self.generator.bld.cmd_and_log(lst,cwd=wd,env=env.env or None)
|
185
|
+
def post_run(self):
|
186
|
+
for x in re_classes.findall(self.out):
|
187
|
+
if os.path.isabs(x):
|
188
|
+
n=self.generator.bld.root.find_node(x)
|
189
|
+
else:
|
190
|
+
n=self.generator.bld.bldnode.find_node(x)
|
191
|
+
if not n:
|
192
|
+
raise ValueError('cannot find %r in %r'%(x,self.generator.bld.bldnode.abspath()))
|
193
|
+
n.sig=Utils.h_file(n.abspath())
|
194
|
+
self.generator.bld.task_sigs[self.uid()]=self.cache_sig
|
195
|
+
out=re_verbose.sub('',self.out).strip()
|
196
|
+
if out:
|
197
|
+
self.generator.bld.to_log(out+'\n')
|
198
|
+
def configure(self):
|
199
|
+
java_path=self.environ['PATH'].split(os.pathsep)
|
200
|
+
v=self.env
|
201
|
+
if'JAVA_HOME'in self.environ:
|
202
|
+
java_path=[os.path.join(self.environ['JAVA_HOME'],'bin')]+java_path
|
203
|
+
self.env['JAVA_HOME']=[self.environ['JAVA_HOME']]
|
204
|
+
for x in'javac java jar'.split():
|
205
|
+
self.find_program(x,var=x.upper(),path_list=java_path)
|
206
|
+
self.env[x.upper()]=self.cmd_to_list(self.env[x.upper()])
|
207
|
+
if'CLASSPATH'in self.environ:
|
208
|
+
v['CLASSPATH']=self.environ['CLASSPATH']
|
209
|
+
if not v['JAR']:self.fatal('jar is required for making java packages')
|
210
|
+
if not v['JAVAC']:self.fatal('javac is required for compiling java classes')
|
211
|
+
v['JARCREATE']='cf'
|
212
|
+
v['JAVACFLAGS']=['-verbose']
|
213
|
+
def check_java_class(self,classname,with_classpath=None):
|
214
|
+
import shutil
|
215
|
+
javatestdir='.waf-javatest'
|
216
|
+
classpath=javatestdir
|
217
|
+
if self.env['CLASSPATH']:
|
218
|
+
classpath+=os.pathsep+self.env['CLASSPATH']
|
219
|
+
if isinstance(with_classpath,str):
|
220
|
+
classpath+=os.pathsep+with_classpath
|
221
|
+
shutil.rmtree(javatestdir,True)
|
222
|
+
os.mkdir(javatestdir)
|
223
|
+
java_file=open(os.path.join(javatestdir,'Test.java'),'w')
|
224
|
+
java_file.write(class_check_source)
|
225
|
+
java_file.close()
|
226
|
+
self.exec_command(self.env['JAVAC']+[os.path.join(javatestdir,'Test.java')],shell=False)
|
227
|
+
cmd=self.env['JAVA']+['-cp',classpath,'Test',classname]
|
228
|
+
self.to_log("%s\n"%str(cmd))
|
229
|
+
found=self.exec_command(cmd,shell=False)
|
230
|
+
self.msg('Checking for java class %s'%classname,not found)
|
231
|
+
shutil.rmtree(javatestdir,True)
|
232
|
+
return found
|
233
|
+
def check_jni_headers(conf):
|
234
|
+
if not conf.env.CC_NAME and not conf.env.CXX_NAME:
|
235
|
+
conf.fatal('load a compiler first (gcc, g++, ..)')
|
236
|
+
if not conf.env.JAVA_HOME:
|
237
|
+
conf.fatal('set JAVA_HOME in the system environment')
|
238
|
+
javaHome=conf.env['JAVA_HOME'][0]
|
239
|
+
dir=conf.root.find_dir(conf.env.JAVA_HOME[0]+'/include')
|
240
|
+
if dir is None:
|
241
|
+
conf.fatal('JAVA_HOME does not seem to be set properly')
|
242
|
+
f=dir.ant_glob('**/(jni|jni_md).h')
|
243
|
+
incDirs=[x.parent.abspath()for x in f]
|
244
|
+
dir=conf.root.find_dir(conf.env.JAVA_HOME[0])
|
245
|
+
f=dir.ant_glob('**/*jvm.(so|dll|dylib)')
|
246
|
+
libDirs=[x.parent.abspath()for x in f]or[javaHome]
|
247
|
+
f=dir.ant_glob('**/*jvm.(lib)')
|
248
|
+
if f:
|
249
|
+
libDirs=[[x,y.parent.abspath()]for x in libDirs for y in f]
|
250
|
+
for d in libDirs:
|
251
|
+
try:
|
252
|
+
conf.check(header_name='jni.h',define_name='HAVE_JNI_H',lib='jvm',libpath=d,includes=incDirs,uselib_store='JAVA',uselib='JAVA')
|
253
|
+
except:
|
254
|
+
pass
|
255
|
+
else:
|
256
|
+
break
|
257
|
+
else:
|
258
|
+
conf.fatal('could not find lib jvm in %r (see config.log)'%libDirs)
|
259
|
+
|
260
|
+
feature('javac')(apply_java)
|
261
|
+
before_method('process_source')(apply_java)
|
262
|
+
feature('javac')(use_javac_files)
|
263
|
+
after_method('apply_java')(use_javac_files)
|
264
|
+
feature('javac')(set_classpath)
|
265
|
+
after_method('apply_java','propagate_uselib_vars','use_javac_files')(set_classpath)
|
266
|
+
feature('jar')(jar_files)
|
267
|
+
after_method('apply_java','use_javac_files')(jar_files)
|
268
|
+
before_method('process_source')(jar_files)
|
269
|
+
feature('jar')(use_jar_files)
|
270
|
+
after_method('jar_files')(use_jar_files)
|
271
|
+
conf(check_java_class)
|
272
|
+
conf(check_jni_headers)
|