Alien-Build

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

    destdir_filter

      Regular expression for the files that should be copied from the
      DESTDIR into the stage directory. If not defined, then all files will
      be copied.

    destdir_ffi_filter

      Same as destdir_filter except applies to build_ffi instead of build.

    digest

      This properties contains the cryptographic digests (if any) that
      should be used when verifying any fetched and downloaded files. It is
      a hash reference where the key is the filename and the value is an
      array reference containing a pair of values, the first being the
      algorithm ('SHA256' is recommended) and the second is the actual
      digest. The special filename * may be specified to indicate that any
      downloaded file should match that digest. If there are both real
      filenames and the * placeholder, the real filenames will be used for
      filenames that match and any other files will use the placeholder.
      Example:

       $build->meta_prop->{digest} = {
         'foo-1.00.tar.gz' => [ SHA256 => '9feac593aa49a44eb837de52513a57736457f1ea70078346c60f0bfc5f24f2c1' ],
         'foo-1.01.tar.gz' => [ SHA256 => '6bbde6a7f10ae5924cf74afc26ff5b7bc4b4f9dfd85c6b534c51bd254697b9e7' ],
         '*'               => [ SHA256 => '33a20aae3df6ecfbe812b48082926d55391be4a57d858d35753ab1334b9fddb3' ],
       };

      Cryptographic signatures will only be checked if the check_digest
      meta property is set and if the Digest negotiator plugin is loaded.
      (The Digest negotiator can be used directly, but is also loaded
      automatically if you use the digest directive is used by the
      alienfile).

    env

      Environment variables to override during the build stage.

    env_interpolate

      Environment variable values will be interpolated with helpers.
      Example:

       meta->prop->{env_interpolate} = 1;
       meta->prop->{env}->{PERL} = '%{perl}';

    local_source

      Set to true if source code package is available locally. (that is not
      fetched over the internet). This is computed by default based on the
      start_url property. Can be set by an alienfile or plugin.

    platform

      Hash reference. Contains information about the platform beyond just
      $^O.

      platform.compiler_type

	Refers to the type of flags that the compiler accepts. May be
	expanded in the future, but for now, will be one of:

	microsoft

	  On Windows when using Microsoft Visual C++

	unix

	  Virtually everything else, including gcc on windows.

	The main difference is that with Visual C++ -LIBPATH should be used
	instead of -L, and static libraries should have the .LIB suffix
	instead of .a.

      platform.system_type

	$^O is frequently good enough to make platform specific logic in
	your alienfile, this handles the case when $^O can cover platforms
	that provide multiple environments that Perl might run under. The
	main example is windows, but others may be added in the future.

	unix

	vms

	windows-activestate

	windows-microsoft

	windows-mingw

	windows-strawberry

	windows-unknown

	Note that cygwin and msys are considered unix even though they run
	on windows!

      platform.cpu.count

	Contains a non-negative integer of available (possibly virtual)
	CPUs on the system. This can be used by build plugins to build in
	parallel. The environment variable ALIEN_CPU_COUNT can be set to
	override the CPU count.

      platform.cpu.arch.name

	Contains a normalized name for the architecture of the current
	Perl. This can be used by fetch plugins to determine which binary
	packages to download. The value may be one of the following, but
	this list will be expanded as needed.

	armel

	  32-bit ARM soft-float

	armhf

	  32-bit ARM hard-float

README  view on Meta::CPAN


      The install time prefix. Under a destdir install this is the same as
      the runtime or final install location. Under a non-destdir install
      this is the stage directory (usually the appropriate share directory
      under blib).

    root

      The build root directory. This will be an absolute path. It is the
      absolute form of ./_alien by default.

    stage

      The stage directory where files will be copied. This is usually the
      root of the blib share directory.

    system_probe_class

      After the probe step this property may contain the plugin class that
      performed the system probe. It shouldn't be filled in directly by the
      plugin (instead if should use the hook property probe_class, see
      below). This is optional, and not all probe plugins will provide this
      information.

    system_probe_instance_id

      After the probe step this property may contain the plugin instance id
      that performed the system probe. It shouldn't be filled in directly
      by the plugin (instead if should use the hook property
      probe_instance_id, see below). This is optional, and not all probe
      plugins will provide this information.

 plugin_instance_prop

     my $href = $build->plugin_instance_prop($plugin);

    This returns the private plugin instance properties for a given plugin.
    This method should usually only be called internally by plugins
    themselves to keep track of internal state. Because the content can be
    used arbitrarily by the owning plugin because it is private to the
    plugin, and thus is not part of the Alien::Build spec.

 runtime_prop

     my $href = $build->runtime_prop;

    Runtime properties are used during the install and runtime phases
    (either under share or system install). This should include anything
    that you will need to know to use the library or tool during runtime,
    and shouldn't include anything that is no longer relevant once the
    install process is complete.

    alien_build_version

      The version of Alien::Build used to install the library or tool.

    alt

      Alternate configurations. If the alienized package has multiple
      libraries this could be used to store the different compiler or
      linker flags for each library. Typically this will be set by a plugin
      in the gather stage (for either share or system installs).

    cflags

      The compiler flags. This is typically set by a plugin in the gather
      stage (for either share or system installs).

    cflags_static

      The static compiler flags. This is typically set by a plugin in the
      gather stage (for either share or system installs).

    command

      The command name for tools where the name my differ from platform to
      platform. For example, the GNU version of make is usually make in
      Linux and gmake on FreeBSD. This is typically set by a plugin in the
      gather stage (for either share or system installs).

    ffi_name

      The name DLL or shared object "name" to use when searching for
      dynamic libraries at runtime. This is passed into FFI::CheckLib, so
      if your library is something like libarchive.so or archive.dll you
      would set this to archive. This may be a string or an array of
      strings. This is typically set by a plugin in the gather stage (for
      either share or system installs).

    ffi_checklib

      This property contains two sub properties:

      ffi_checklib.share

         $build->runtime_prop->{ffi_checklib}->{share} = [ ... ];

	Array of additional FFI::CheckLib flags to pass in to find_lib for
	a share install.

      ffi_checklib.system

	Array of additional FFI::CheckLib flags to pass in to find_lib for
	a system install.

	Among other things, useful for specifying the try_linker_script
	flag:

         $build->runtime_prop->{ffi_checklib}->{system} = [ try_linker_script => 1 ];

      This is typically set by a plugin in the gather stage (for either
      share or system installs).

    inline_auto_include

      [version 2.53]

      This property is an array reference of C code that will be passed
      into Inline::C to make sure that appropriate headers are
      automatically included. See "auto_include" in Inline::C for details.

    install_type

      The install type. This is set by AB core after the probe hook is
      executed. Is one of:

      system

	For when the library or tool is provided by the operating system,
	can be detected by Alien::Build, and is considered satisfactory by
	the alienfile recipe.

      share

	For when a system install is not possible, the library source will
	be downloaded from the internet or retrieved in another appropriate
	fashion and built.

    libs

      The library flags. This is typically set by a plugin in the gather
      stage (for either share or system installs).

    libs_static

      The static library flags. This is typically set by a plugin in the
      gather stage (for either share or system installs).

    perl_module_version

      The version of the Perl module used to install the alien (if
      available). For example if Alien::curl is installing libcurl this
      would be the version of Alien::curl used during the install step.

    prefix

      The final install root. This is usually they share directory.

    version

      The version of the library or tool. This is typically set by a plugin
      in the gather stage (for either share or system installs).

 hook_prop

     my $href = $build->hook_prop;

    Hook properties are for the currently running (if any) hook. They are
    used only during the execution of each hook and are discarded after. If
    no hook is currently running then hook_prop will return undef.

    name

      The name of the currently running hook.

    version (probe)

      Probe and PkgConfig plugins may set this property indicating the
      version of the alienized package. Not all plugins and configurations
      may be able to provide this.

    probe_class (probe)

      Probe and PkgConfig plugins may set this property indicating the
      plugin class that made the probe. If the probe results in a system
      install this will be propagated to system_probe_class for later use.

    probe_instance_id (probe)

      Probe and PkgConfig plugins may set this property indicating the
      plugin instance id that made the probe. If the probe results in a
      system install this will be propagated to system_probe_instance_id
      for later use.

METHODS

 checkpoint

     $build->checkpoint;

    Save any install or runtime properties so that they can be reloaded on
    a subsequent run in a separate process. This is useful if your build
    needs to be done in multiple stages from a Makefile, such as with
    ExtUtils::MakeMaker. Once checkpointed you can use the resume
    constructor (documented above) to resume the probe/build/install]
    process.



( run in 1.000 second using v1.01-cache-2.11-cpan-d7f47b0818f )