mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/tk/extconf.rb,ext/tk/config_list.in: ignore paths which includes
white space characters on Windows.[ruby-dev:38794] * ext/tk/lib/tk.rb: works on Cygwin (limitation:: Tk.mainloop works on the main thread only). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24154 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
6d7ddc3b29
commit
31060fb11b
4 changed files with 71 additions and 17 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
Thu Jul 16 23:32:16 2009 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
|
||||||
|
|
||||||
|
* ext/tk/extconf.rb,ext/tk/config_list.in: ignore paths which includes
|
||||||
|
white space characters on Windows.[ruby-dev:38794]
|
||||||
|
|
||||||
|
* ext/tk/lib/tk.rb: works on Cygwin (limitation:: Tk.mainloop works on
|
||||||
|
the main thread only).
|
||||||
|
|
||||||
Thu Jul 16 20:58:18 2009 Masaki Suketa <masaki.suketa@nifty.ne.jp>
|
Thu Jul 16 20:58:18 2009 Masaki Suketa <masaki.suketa@nifty.ne.jp>
|
||||||
|
|
||||||
* test/win32ole/test_win32ole.rb (test_s_codepage_changed,
|
* test/win32ole/test_win32ole.rb (test_s_codepage_changed,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
##############################################
|
##############################################
|
||||||
# configure options for Ruby/Tk
|
# configure options for Ruby/Tk
|
||||||
# release date: 2009-07-12
|
# release date: 2009-07-15
|
||||||
##############################################
|
##############################################
|
||||||
with tk-old-extconf
|
with tk-old-extconf
|
||||||
with ActiveTcl
|
with ActiveTcl
|
||||||
|
@ -33,3 +33,4 @@ with X11-lib
|
||||||
enable pthread
|
enable pthread
|
||||||
enable tcl-thread
|
enable tcl-thread
|
||||||
with tclConfig-file
|
with tclConfig-file
|
||||||
|
enable space-on-tk-libpath
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
##############################################################
|
##############################################################
|
||||||
# extconf.rb for tcltklib
|
# extconf.rb for tcltklib
|
||||||
# release date: 2009-07-12
|
# release date: 2009-07-15
|
||||||
##############################################################
|
##############################################################
|
||||||
require 'mkmf'
|
require 'mkmf'
|
||||||
|
|
||||||
|
@ -214,6 +214,11 @@ def get_shlib_path_head
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
unless TkLib_Config["space-on-tk-libpath"]
|
||||||
|
path_head.delete_if{|path| path =~ / /}
|
||||||
|
path_dirs.delete_if{|path| path =~ / /}
|
||||||
|
end
|
||||||
|
|
||||||
[path_head, path_dirs]
|
[path_head, path_dirs]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -418,6 +423,10 @@ def search_tclConfig(*paths) # list of lib-dir or [tcl-libdir, tk-libdir]
|
||||||
dirs << File.expand_path(File.join(dir, '..'))
|
dirs << File.expand_path(File.join(dir, '..'))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unless TkLib_Config["space-on-tk-libpath"]
|
||||||
|
dirs.delete_if{|path| path =~ / /}
|
||||||
|
end
|
||||||
|
|
||||||
config_dir.concat(dirs.zip(dirs))
|
config_dir.concat(dirs.zip(dirs))
|
||||||
|
|
||||||
elsif framework = find_macosx_framework()
|
elsif framework = find_macosx_framework()
|
||||||
|
@ -627,7 +636,14 @@ def check_shlib_search_path(paths)
|
||||||
|
|
||||||
path_list = check_NG_path(path_list)
|
path_list = check_NG_path(path_list)
|
||||||
|
|
||||||
path_list.each{|path| $LIBPATH |= [path.strip] }
|
if is_win32?
|
||||||
|
# exist-dir only
|
||||||
|
path_list.each{|path|
|
||||||
|
path = path.strip; $LIBPATH |= [path] if File.directory?(path)
|
||||||
|
}
|
||||||
|
else
|
||||||
|
path_list.each{|path| $LIBPATH |= [path.strip] }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_tcl(tcllib, stubs, version, *opt_paths)
|
def find_tcl(tcllib, stubs, version, *opt_paths)
|
||||||
|
@ -646,6 +662,10 @@ def find_tcl(tcllib, stubs, version, *opt_paths)
|
||||||
"/Tcl/lib", "/Program Files/Tcl/lib"
|
"/Tcl/lib", "/Program Files/Tcl/lib"
|
||||||
].find_all{|dir| File.directory?(dir)}
|
].find_all{|dir| File.directory?(dir)}
|
||||||
|
|
||||||
|
unless TkLib_Config["space-on-tk-libpath"]
|
||||||
|
default_paths.delete_if{|path| path =~ / /}
|
||||||
|
end
|
||||||
|
|
||||||
if (paths = opt_paths.compact).empty?
|
if (paths = opt_paths.compact).empty?
|
||||||
if TclConfig_Info['config_file_path']
|
if TclConfig_Info['config_file_path']
|
||||||
# use definisions on tclConfig.sh
|
# use definisions on tclConfig.sh
|
||||||
|
@ -654,9 +674,11 @@ def find_tcl(tcllib, stubs, version, *opt_paths)
|
||||||
|
|
||||||
unless stubs
|
unless stubs
|
||||||
#*** Probably, TCL_LIBS is a subset of TK_LIBS. ***
|
#*** Probably, TCL_LIBS is a subset of TK_LIBS. ***
|
||||||
# $LDFLAGS << ' ' << TclConfig_Info['TCL_LIBS']
|
unless is_win32? # ignore tclConfig on Windows
|
||||||
# $DLDFLAGS << ' ' << TclConfig_Info['TCL_LIBS']
|
# $LDFLAGS << ' ' << TclConfig_Info['TCL_LIBS']
|
||||||
$LDFLAGS << ' ' << TclConfig_Info['TCL_LIB_SPEC']
|
# $DLDFLAGS << ' ' << TclConfig_Info['TCL_LIBS']
|
||||||
|
$LDFLAGS << ' ' << TclConfig_Info['TCL_LIB_SPEC']
|
||||||
|
end
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -666,9 +688,11 @@ def find_tcl(tcllib, stubs, version, *opt_paths)
|
||||||
return false
|
return false
|
||||||
else
|
else
|
||||||
#*** Probably, TCL_LIBS is a subset of TK_LIBS. ***
|
#*** Probably, TCL_LIBS is a subset of TK_LIBS. ***
|
||||||
# $LDFLAGS << ' ' << TclConfig_Info['TCL_LIBS']
|
unless is_win32? # ignore tclConfig on Windows
|
||||||
# $DLDFLAGS << ' ' << TclConfig_Info['TCL_LIBS']
|
# $LDFLAGS << ' ' << TclConfig_Info['TCL_LIBS']
|
||||||
$LDFLAGS << ' ' << TclConfig_Info['TCL_STUB_LIB_SPEC']
|
# $DLDFLAGS << ' ' << TclConfig_Info['TCL_LIBS']
|
||||||
|
$LDFLAGS << ' ' << TclConfig_Info['TCL_STUB_LIB_SPEC']
|
||||||
|
end
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -742,6 +766,10 @@ def find_tk(tklib, stubs, version, *opt_paths)
|
||||||
"/Tcl/lib", "/Program Files/Tcl/lib"
|
"/Tcl/lib", "/Program Files/Tcl/lib"
|
||||||
].find_all{|dir| File.directory?(dir)}
|
].find_all{|dir| File.directory?(dir)}
|
||||||
|
|
||||||
|
unless TkLib_Config["space-on-tk-libpath"]
|
||||||
|
default_paths.delete_if{|path| path =~ / /}
|
||||||
|
end
|
||||||
|
|
||||||
if (paths = opt_paths.compact).empty?
|
if (paths = opt_paths.compact).empty?
|
||||||
if TkConfig_Info['config_file_path']
|
if TkConfig_Info['config_file_path']
|
||||||
# use definisions on tkConfig.sh
|
# use definisions on tkConfig.sh
|
||||||
|
@ -749,9 +777,12 @@ def find_tk(tklib, stubs, version, *opt_paths)
|
||||||
$LIBPATH |= [$2] unless $2.empty?
|
$LIBPATH |= [$2] unless $2.empty?
|
||||||
|
|
||||||
unless stubs
|
unless stubs
|
||||||
$LDFLAGS << ' ' << parse_TK_LIBS(TkConfig_Info['TK_LIBS'])
|
unless is_win32? # ignore tclConfig on Windows
|
||||||
# $DLDFLAGS << ' ' << parse_TK_LIBS(TkConfig_Info['TK_LIBS'])
|
# $LDFLAGS << ' ' << parse_TK_LIBS(TkConfig_Info['TK_LIBS'])
|
||||||
$LDFLAGS << ' ' << TkConfig_Info['TK_LIB_SPEC']
|
$LDFLAGS << ' ' << TkConfig_Info['TK_LIBS'] unless is_win32?
|
||||||
|
# $DLDFLAGS << ' ' << parse_TK_LIBS(TkConfig_Info['TK_LIBS'])
|
||||||
|
$LDFLAGS << ' ' << TkConfig_Info['TK_LIB_SPEC'] unless is_win32?
|
||||||
|
end
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -759,9 +790,12 @@ def find_tk(tklib, stubs, version, *opt_paths)
|
||||||
puts "#{TkConfig_Info['config_file_path']} tells us that your Tcl/Tk library doesn't support stub."
|
puts "#{TkConfig_Info['config_file_path']} tells us that your Tcl/Tk library doesn't support stub."
|
||||||
return false
|
return false
|
||||||
else
|
else
|
||||||
$LDFLAGS << ' ' << parse_TK_LIBS(TkConfig_Info['TK_LIBS'])
|
unless is_win32? # ignore tclConfig on Windows
|
||||||
# $DLDFLAGS << ' ' << parse_TK_LIBS(TkConfig_Info['TK_LIBS'])
|
# $LDFLAGS << ' ' << parse_TK_LIBS(TkConfig_Info['TK_LIBS'])
|
||||||
$LDFLAGS << ' ' << TkConfig_Info['TK_STUB_LIB_SPEC']
|
$LDFLAGS << ' ' << TkConfig_Info['TK_LIBS']
|
||||||
|
# $DLDFLAGS << ' ' << parse_TK_LIBS(TkConfig_Info['TK_LIBS'])
|
||||||
|
$LDFLAGS << ' ' << TkConfig_Info['TK_STUB_LIB_SPEC']
|
||||||
|
end
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -818,6 +852,10 @@ def find_tcltk_header(tclver, tkver)
|
||||||
"/Tcl/include", "/Program Files/Tcl/include"
|
"/Tcl/include", "/Program Files/Tcl/include"
|
||||||
].find_all{|dir| File.directory?(dir)}
|
].find_all{|dir| File.directory?(dir)}
|
||||||
|
|
||||||
|
unless TkLib_Config["space-on-tk-libpath"]
|
||||||
|
base_dir.delete_if{|path| path =~ / /}
|
||||||
|
end
|
||||||
|
|
||||||
if TclConfig_Info['TCL_INCLUDE_SPEC'] &&
|
if TclConfig_Info['TCL_INCLUDE_SPEC'] &&
|
||||||
have_tcl_h = try_cpp('tcl.h', TclConfig_Info['TCL_INCLUDE_SPEC'])
|
have_tcl_h = try_cpp('tcl.h', TclConfig_Info['TCL_INCLUDE_SPEC'])
|
||||||
$INCFLAGS << " " << TclConfig_Info['TCL_INCLUDE_SPEC']
|
$INCFLAGS << " " << TclConfig_Info['TCL_INCLUDE_SPEC']
|
||||||
|
@ -1123,6 +1161,10 @@ if activeTcl = with_config("ActiveTcl", true)
|
||||||
end
|
end
|
||||||
TkLib_Config["ActiveTcl"] = activeTcl
|
TkLib_Config["ActiveTcl"] = activeTcl
|
||||||
|
|
||||||
|
# allow space chars on a libpath
|
||||||
|
TkLib_Config["space-on-tk-libpath"] =
|
||||||
|
enable_config("space-on-tk-libpath", ! is_win32?)
|
||||||
|
|
||||||
# enable Tcl/Tk stubs?
|
# enable Tcl/Tk stubs?
|
||||||
=begin
|
=begin
|
||||||
if TclConfig_Info['TCL_STUB_LIB_SPEC'] && TkConfig_Info['TK_STUB_LIB_SPEC'] &&
|
if TclConfig_Info['TCL_STUB_LIB_SPEC'] && TkConfig_Info['TK_STUB_LIB_SPEC'] &&
|
||||||
|
|
|
@ -1178,7 +1178,10 @@ module TkCore
|
||||||
if WITH_RUBY_VM ### check Ruby 1.9 !!!!!!!
|
if WITH_RUBY_VM ### check Ruby 1.9 !!!!!!!
|
||||||
# *** NEED TO FIX ***
|
# *** NEED TO FIX ***
|
||||||
ip = TclTkIp.new(name, opts)
|
ip = TclTkIp.new(name, opts)
|
||||||
if ip._invoke_without_enc('tk', 'windowingsystem') == 'aqua' &&
|
if RUBY_PLATFORM =~ /cygwin/
|
||||||
|
RUN_EVENTLOOP_ON_MAIN_THREAD = true
|
||||||
|
INTERP = ip
|
||||||
|
elsif ip._invoke_without_enc('tk', 'windowingsystem') == 'aqua' &&
|
||||||
(TclTkLib.get_version<=>[8,4,TclTkLib::RELEASE_TYPE::FINAL,6]) > 0
|
(TclTkLib.get_version<=>[8,4,TclTkLib::RELEASE_TYPE::FINAL,6]) > 0
|
||||||
# *** KNOWN BUG ***
|
# *** KNOWN BUG ***
|
||||||
# Main event loop thread of TkAqua (> Tk8.4.9) must be the main
|
# Main event loop thread of TkAqua (> Tk8.4.9) must be the main
|
||||||
|
@ -5636,7 +5639,7 @@ TkWidget = TkWindow
|
||||||
#Tk.freeze
|
#Tk.freeze
|
||||||
|
|
||||||
module Tk
|
module Tk
|
||||||
RELEASE_DATE = '2009-07-12'.freeze
|
RELEASE_DATE = '2009-07-16'.freeze
|
||||||
|
|
||||||
autoload :AUTO_PATH, 'tk/variable'
|
autoload :AUTO_PATH, 'tk/variable'
|
||||||
autoload :TCL_PACKAGE_PATH, 'tk/variable'
|
autoload :TCL_PACKAGE_PATH, 'tk/variable'
|
||||||
|
|
Loading…
Reference in a new issue