module BuildTool; module BuildSystem # # # class Qt < Base include MJ::Tools::SubProcess class MakeError < BuildTool::Error; end class QMakeError < BuildTool::Error; end def intitialize( *args ) super( *args ) end # ### ATTRIBUTES # # Check if the module is configured def configured? Pathname.new( build_directory ).join( 'Makefile' ).exist? end def name "qt" end # ### METHODS # # Execute a cmake command in the context of the build directory def _configure( command, wd = build_directory ) rc = self.class.execute "#{source_directory}/configure #{command}", wd, env if rc != 0 raise QMakeError, "configure failed with error #{rc}!" end rc end def after_rebase if configured? rc = self.class.execute( "bin/syncqt", build_directory, self.module.environment.values ) end end def configure check_build_directory( true ) opt = "" opt += " -prefix #{install_prefix.to_s} " if install_prefix opt += self['flags'] rc = _configure opt rc end def do_make( target = nil ) rc = self.class.execute( "make #{target ? target : "" }", build_directory, self.module.environment.values ) if rc != 0 raise MakeError, "make #{target || "" } failed with error code #{rc}"; end rc end def install( fast ) make( "install" ) end def install_fast_supported? true end def make( target = nil ) do_make( target ) end # Configure the module def reconfigure() if File.exist?( "#{build_directory}/.qmake.cache" ) return false if self.class.execute( "rm -f #{build_directory}/.qmake.cache" ) != 0 end configure end end # class Autoconf end; end # module BuildTool::BuildSystem