1require File.join( File.dirname(__FILE__), 'lib_finder.rb' ) 2 3module RestinioPCREFind 4 5 def self.find_libs( libs ) 6 7 lib_dirs = ENV[ "LIB" ] 8 if lib_dirs 9 10 dirs_to_look = lib_dirs.split( ';' ).select{|p| p != "" } 11 12 dir = dirs_to_look.find_index{|d| RestinioLibFinder.all_files_exist( d, libs ) } 13 end 14 15 if dir 16 libs 17 else 18 [] 19 end 20 end 21 22 def self.get_libs_vc 23 find_libs( [ 'pcre.lib' ] ) 24 end 25 26 def self.get_libs_linux 27 [ 'pcre' ] 28 end 29 30 def self.get_libs_names_linux 31 [ 'libpcre.a' ] 32 end 33 34 def self.get_libs_mingw 35 [ 'pcre' ] 36 end 37 38 def self.get_libs_names_mingw 39 [ 'libpcre.a' ] 40 end 41 42 def self.get_libs( toolset ) 43 if 'mswin' == toolset.tag( 'target_os' ) 44 if 'vc' == toolset.name 45 get_libs_vc 46 elsif 'gcc' == toolset.name 47 get_libs_mingw 48 end 49 else 50 get_libs_linux 51 end 52 end 53 54 def self.get_libs_names( toolset ) 55 if 'mswin' == toolset.tag( 'target_os' ) 56 if 'vc' == toolset.name 57 get_libs_vc 58 elsif 'gcc' == toolset.name 59 get_libs_names_mingw 60 end 61 else 62 get_libs_names_linux 63 end 64 end 65 66 def self.try_to_get_custom_file 67 RestinioLibFinder.try_to_get_custom_file( 'PCRE_PRJ_FILE', 'local-pcre.rb' ) 68 end 69 70 71 def self.has_pcre( toolset ) 72 custom_prj = try_to_get_custom_file 73 if File.exist?(custom_prj) 74 true 75 else 76 libraries = get_libs_names( toolset ) 77 if !libraries.empty? 78 RestinioLibFinder.check_libs_available( toolset, libraries ) 79 else 80 false 81 end 82 end 83 end 84 85 86end #module RestinioPCREFind 87