class MxxRu::Cpp::Toolsets::Gcc_mswin_family
Toolset
implemetation for GCC compiler for Win32. This class is a base class for both MinGW and Cygwin
Public Instance Methods
clean_dll_specific_files( a_dll_file, a_dll_info, a_target )
click to toggle source
See description at MxxRu::Cpp::Toolset#clean_dll_specific_files
.
Delete import library if exists.
# File lib/mxx_ru/cpp/toolsets/gcc_family.rb, line 356 def clean_dll_specific_files( a_dll_file, a_dll_info, a_target ) # Delete import library if exists. if nil != a_dll_info.link_name implib_name = File.join( [ a_dll_info.link_path, lib_file_name( a_dll_info.link_name, a_target ) ] ) MxxRu::Util::delete_file( implib_name ) end end
exe_file_name( source_name, target )
click to toggle source
See description at MxxRu::Cpp::Toolset#exe_file_name
.
# File lib/mxx_ru/cpp/toolsets/gcc_family.rb, line 349 def exe_file_name( source_name, target ) return construct_target_name( source_name, NO_PREFIX, ".exe", target ) end
implib_link_name( dll_real_name, target )
click to toggle source
See description at MxxRu::Cpp::Toolset#implib_link_name
.
# File lib/mxx_ru/cpp/toolsets/gcc_family.rb, line 370 def implib_link_name( dll_real_name, target ) # It's required to pass import library name to linker on mswin platform if nil != target.mxx_implib_path return lib_link_name( target.mxx_target_name, target ) end return nil end
implib_link_path( dll_real_name, dll_real_path, target )
click to toggle source
See description at MxxRu::Cpp::Toolset#implib_link_path
.
# File lib/mxx_ru/cpp/toolsets/gcc_family.rb, line 383 def implib_link_path( dll_real_name, dll_real_path, target ) return target.mxx_obj_placement.get_lib( target.mxx_implib_path, self, target ) end
make_dll_requirements( a_dll_name, a_dll_info, a_linker_lists, a_target )
click to toggle source
See description at MxxRu::Cpp::Toolset#make_dll_requirements
.
# File lib/mxx_ru/cpp/toolsets/gcc_family.rb, line 392 def make_dll_requirements( a_dll_name, a_dll_info, a_linker_lists, a_target ) result = DllRequirements.new # Dependencies are exists only if import library is present. if nil != a_dll_info.link_name result.add_libs( [ a_dll_info.link_name ] ) result.add_lib_paths( [ a_dll_info.link_path ] ) end return result end
port_specific_dll_link_options( a_dll_name, a_dll_info, a_linker_lists, a_target )
click to toggle source
Return string containing port-specific linker option for DLL linking.
All parameters are similar to make_dll_command_lines parameters.
Return empty string in a base class.
# File lib/mxx_ru/cpp/toolsets/gcc_family.rb, line 414 def port_specific_dll_link_options( a_dll_name, a_dll_info, a_linker_lists, a_target ) # Build import library if it's required. if nil != a_dll_info.link_name full_lib_name = File.join( [ a_dll_info.link_path, lib_file_name( a_dll_info.link_name, a_target ) ] ) return "-Wl,--out-implib=#{full_lib_name}" + ",--export-all-symbols" end return "" end
port_specific_lib_name_checker(library_name)
click to toggle source
Checks library name for suffix '.lib' and return name without that suffix.
# File lib/mxx_ru/cpp/toolsets/gcc_family.rb, line 430 def port_specific_lib_name_checker(library_name) if /\.lib$/i =~ library_name MxxRu::Util::remove_file_ext(library_name) else library_name end end