diff options
author | David Nyström <david.c.nystrom@gmail.com> | 2012-12-17 16:16:37 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-01-07 11:09:35 +0000 |
commit | b03f4b7051ca274143b6cfac3b54542617df3842 (patch) | |
tree | 06a91dc307a50a3ca0972c3c0e4bdd750c219bd7 /scripts | |
parent | 5d8a2e82e885b79c380ffaa5f613318f6d271e2c (diff) | |
download | poky-b03f4b7051ca274143b6cfac3b54542617df3842.tar.gz |
Added ability to parse python sources to create-recipe
Hi,
Added python source parsing abilities to create-recipe.
(From OE-Core rev: 417357cbcd3ecc7a2e43f87c618c8fdfe04a9d33)
Signed-off-by: David Nyström <david.nystrom@enea.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/create-recipe | 51 |
1 files changed, 48 insertions, 3 deletions
diff --git a/scripts/create-recipe b/scripts/create-recipe index 776c91dd9d..a556e39dd1 100755 --- a/scripts/create-recipe +++ b/scripts/create-recipe | |||
@@ -40,6 +40,8 @@ my $version = $predef_version; | |||
40 | my $description = ""; | 40 | my $description = ""; |
41 | my $summary = ""; | 41 | my $summary = ""; |
42 | my $url = ""; | 42 | my $url = ""; |
43 | my $homepage; | ||
44 | my @rdepends; | ||
43 | my $configure = ""; | 45 | my $configure = ""; |
44 | my $localename = ""; | 46 | my $localename = ""; |
45 | my @sources; | 47 | my @sources; |
@@ -1679,6 +1681,7 @@ sub write_bbfile | |||
1679 | open(BBFILE, ">${name}_$version.bb"); | 1681 | open(BBFILE, ">${name}_$version.bb"); |
1680 | print BBFILE "SUMMARY = \"$summary\"\n"; | 1682 | print BBFILE "SUMMARY = \"$summary\"\n"; |
1681 | print BBFILE "DESCRIPTION = \"$description\"\n"; | 1683 | print BBFILE "DESCRIPTION = \"$description\"\n"; |
1684 | print BBFILE "HOMEPAGE = \"$homepage\"\n"; | ||
1682 | 1685 | ||
1683 | print BBFILE "LICENSE = \"@license\"\n"; | 1686 | print BBFILE "LICENSE = \"@license\"\n"; |
1684 | print BBFILE "LIC_FILES_CHKSUM = \""; | 1687 | print BBFILE "LIC_FILES_CHKSUM = \""; |
@@ -1698,6 +1701,10 @@ sub write_bbfile | |||
1698 | print BBFILE "DEPENDS = \"@out\"\n\n"; | 1701 | print BBFILE "DEPENDS = \"@out\"\n\n"; |
1699 | }; | 1702 | }; |
1700 | 1703 | ||
1704 | if (@rdepends > 0) { | ||
1705 | print BBFILE "RDEPENDS_\$\{PN\} += \"@rdepends\"\n"; | ||
1706 | } | ||
1707 | |||
1701 | print BBFILE 'PR = "r0"' . "\n\n"; | 1708 | print BBFILE 'PR = "r0"' . "\n\n"; |
1702 | print BBFILE "SRC_URI = \""; | 1709 | print BBFILE "SRC_URI = \""; |
1703 | foreach (@sources) { | 1710 | foreach (@sources) { |
@@ -1734,6 +1741,7 @@ sub calculate_sums | |||
1734 | chomp($sha256sum); | 1741 | chomp($sha256sum); |
1735 | } | 1742 | } |
1736 | 1743 | ||
1744 | |||
1737 | ############################################################################ | 1745 | ############################################################################ |
1738 | # | 1746 | # |
1739 | # Main program | 1747 | # Main program |
@@ -1820,6 +1828,40 @@ foreach (@dirs) { | |||
1820 | 1828 | ||
1821 | $fulldir = $dir; | 1829 | $fulldir = $dir; |
1822 | 1830 | ||
1831 | if ( -e "$dir/setup.py" ) { | ||
1832 | $python = 1; | ||
1833 | push(@inherits, "distutils"); | ||
1834 | |||
1835 | system("cd $dir ; python setup.py build sdist &> /dev/null"); | ||
1836 | |||
1837 | $templic = `sed '/^License: */!d; s///;q' $dir/*.egg-info/PKG-INFO`; | ||
1838 | chomp($templic); | ||
1839 | push(@license, $templic); | ||
1840 | $summary = `sed '/^Name: */!d; s///;q' $dir/*.egg-info/PKG-INFO`; | ||
1841 | chomp($summary); | ||
1842 | $description = `sed '/^Summary: */!d; s///;q' $dir/*.egg-info/PKG-INFO`; | ||
1843 | chomp($description); | ||
1844 | $homepage = `sed '/^Home-page: */!d; s///;q' $dir/*.egg-info/PKG-INFO`; | ||
1845 | chomp($homepage); | ||
1846 | $findoutput = `find $dir/*.egg-info/ -name "requires.txt" 2>/dev/null`; | ||
1847 | @findlist = split(/\n/, $findoutput); | ||
1848 | foreach (@findlist) { | ||
1849 | # Adding dependency do buildreqs should be removed when | ||
1850 | # distutils is unbroken, i.e. blocks setup.py install from | ||
1851 | # downloading and installing dependencies. | ||
1852 | push(@buildreqs, `sed 's/[^a-zA-Z]//g' $dir/*.egg-info/requires.txt`); | ||
1853 | chomp(@buildreqs); | ||
1854 | foreach $item (@buildreqs) { | ||
1855 | $item = "python-" . $item | ||
1856 | } | ||
1857 | push(@rdepends, `sed 's/[^a-zA-Z]//g' $dir/*.egg-info/requires.txt`); | ||
1858 | chomp(@rdepends); | ||
1859 | foreach $item (@rdepends) { | ||
1860 | $item = "python-" . $item | ||
1861 | } | ||
1862 | } | ||
1863 | } | ||
1864 | |||
1823 | if ( -e "$dir/autogen.sh" ) { | 1865 | if ( -e "$dir/autogen.sh" ) { |
1824 | $configure = "autogen"; | 1866 | $configure = "autogen"; |
1825 | $uses_configure = 1; | 1867 | $uses_configure = 1; |
@@ -1859,7 +1901,6 @@ if (-e "$dir/$name.pro") { | |||
1859 | push(@inherits, "qmake2"); | 1901 | push(@inherits, "qmake2"); |
1860 | } | 1902 | } |
1861 | 1903 | ||
1862 | |||
1863 | # | 1904 | # |
1864 | # This is a good place to generate configure.in | 1905 | # This is a good place to generate configure.in |
1865 | # | 1906 | # |
@@ -1868,6 +1909,8 @@ if (length($configure) > 2) { | |||
1868 | system("cd $dir ; ./autogen.sh &> /dev/null"); | 1909 | system("cd $dir ; ./autogen.sh &> /dev/null"); |
1869 | } | 1910 | } |
1870 | } | 1911 | } |
1912 | |||
1913 | |||
1871 | @files = <$dir/configure>; | 1914 | @files = <$dir/configure>; |
1872 | foreach (@files) { | 1915 | foreach (@files) { |
1873 | process_configure("$_"); | 1916 | process_configure("$_"); |
@@ -1893,8 +1936,10 @@ foreach (@files) { | |||
1893 | guess_license_from_file("$_"); | 1936 | guess_license_from_file("$_"); |
1894 | } | 1937 | } |
1895 | 1938 | ||
1896 | 1939 | ||
1897 | guess_description($dir); | 1940 | if ($python != 1) { |
1941 | guess_description($dir); | ||
1942 | } | ||
1898 | 1943 | ||
1899 | # | 1944 | # |
1900 | # Output of bbfile file | 1945 | # Output of bbfile file |