class Autobuild::Python
Handler class to build python-based packages
Attributes
buildflags[RW]
installflags[RW]
Public Class Methods
new(options)
click to toggle source
Calls superclass method
Autobuild::Configurable::new
# File lib/autobuild/packages/python.rb, line 18 def initialize(options) @buildflags = [] @installflags = [] super end
Public Instance Methods
build()
click to toggle source
Do the build in builddir
# File lib/autobuild/packages/python.rb, line 65 def build return unless install_mode? command = generate_build_command command << '--force' if @forced progress_start 'building %s [progress not available]', done_message: 'built %s' do run 'build', *command, working_directory: srcdir end Autobuild.touch_stamp(buildstamp) end
configurestamp()
click to toggle source
# File lib/autobuild/packages/python.rb, line 14 def configurestamp "#{builddir}/configure-autobuild-stamp" end
generate_build_command()
click to toggle source
# File lib/autobuild/packages/python.rb, line 34 def generate_build_command command = ['python', 'setup.py', 'build'] command << "--build-base=#{builddir}" command += buildflags.flatten command end
generate_install_command()
click to toggle source
# File lib/autobuild/packages/python.rb, line 41 def generate_install_command command = generate_build_command command << 'install' command << "--prefix=#{prefix}" command += installflags.flatten command end
install()
click to toggle source
Install the result in prefix
Calls superclass method
# File lib/autobuild/packages/python.rb, line 78 def install return unless install_mode? command = generate_install_command command << '--force' if @forced progress_start 'installing %s', done_message: 'installed %s' do run 'install', *command, working_directory: srcdir end super end
install_mode?()
click to toggle source
# File lib/autobuild/packages/python.rb, line 24 def install_mode? File.file?(File.join(srcdir, 'setup.py')) end
prepare_for_forced_build()
click to toggle source
Calls superclass method
Autobuild::Configurable#prepare_for_forced_build
# File lib/autobuild/packages/python.rb, line 28 def prepare_for_forced_build super FileUtils.rm_f configurestamp @forced = true end
python_path()
click to toggle source
# File lib/autobuild/packages/python.rb, line 49 def python_path begin _, output, _, ret = Open3.popen3({ 'PYTHONUSERBASE' => prefix }, 'python -m site --user-site') rescue Exception => e raise "Unable to set PYTHONPATH: #{e.message}" end if ret.value.success? output.read.chomp else raise 'Unable to set PYTHONPATH: user site directory disabled?' end end
update_environment()
click to toggle source
Calls superclass method
# File lib/autobuild/packages/python.rb, line 90 def update_environment super path = install_mode? ? python_path : srcdir env_add_path 'PYTHONPATH', path end