summaryrefslogtreecommitdiff
path: root/morphlib/buildsystem.py
Commit message (Collapse)AuthorAgeFilesLines
* Remove support for definitions version 6Tiago Gomes2016-03-251-231/+0
| | | | Change-Id: I603b5172902b5249874ea3bb90de59db5a908185
* Add support for Baserock definitions version 7Sam Thursfield2015-10-141-4/+11
| | | | | | | | | | | | | | | | | | | | | | This adds a new 'Defaults' class to represent definitions defaults The Python 'jsonschema' module is used to validate the contents of the Defaults file. This module is already included in Baserock 'build' and 'devel' reference systems by way of the 'openstack-common' stratum. This commit embeds a copy of the JSON-Schema schema for the DEFAULTS file. I think the canonical location of this schema should be in the reference definitions.git, for now. In future, the schemas should maybe have their own repos. Either way, Morph should embed a copy for the time being so that we are sure the schema matches how Morph expects to parse the file. Morph's automated tests are all updated to use definitions version 7. I removed most of the tests for built-in build systems, because the built-ins themselves are no longer part of Morph. Only the mechanism for defining them needs to be tested now. Change-Id: I65f8f1c967683ef605852bfae5c68518e53f9981
* buildsystem.py: some autotools projects use a script called bootstrap[.sh]Javier Jardón2015-09-251-0/+2
| | | | | | ... instead the more common autogen[.sh] Change-Id: I3d797581708ffaefd1a1d4880253cfc2a3f5aa85
* Remove support for Baserock definitions format versions 3, 4 and 5Sam Thursfield2015-09-181-82/+4
| | | | Change-Id: Iad95af65bd5c528d2e72f5b2ffa80a01152f50ff
* Add support for Module::Build build systemRichard Ipsum2015-09-071-1/+42
| | | | | | | | ExtUtils::MakeMaker is preferred, Module::Build was meant to replace it but essentially wasn't good enough, some projects still use Module::Build though. Change-Id: I124ee7b33f32167302e9bcb5299f6422f4fc346e
* Make ExtUtilsMakeMakerBuildSystem be more standardRichard Ipsum2015-09-071-10/+19
| | | | | | Install to default locations rather than overriding. Change-Id: Ieccd06afdf623eee0d09b8d29d40d147dc8c5e7c
* Rename CPANBuildSystem to ExtUtilsMakeMakerBuildSystemRichard Ipsum2015-09-071-2/+2
| | | | | | There are several perl build systems. Change-Id: I17b5d61b7bffbdbcb9944e9e41449bec7a69c527
* Don't provide default strip-commands for 'manual' build systemSam Thursfield2015-07-231-1/+6
| | | | | | | | | | | | | | | | | | | | | This makes more sense to me conceptually: the idea of the 'manual' build system is you specify *everything* manually. However, I made this change to work around a problem in the Yarn test suite. If the definitions used for testing are set to version 5 or newer, `morph build` will try to run 'strip' and 'objcopy', which fails because they don't exist in the test definitions. We could solve this by setting 'strip-commands: []' in the test chunk .morph files, but this triggers an error further down where `morph edit` fails with 'Field strip-commands not allowed in morphology test-chunk.morph'. This bug is caused by the conditional way that strip-commands are currently implemented in Morph. When we drop support for versions of the definitions format older than V5, the bug will go away, and the `morph edit` command is deprecated in any case, so I think it makes sense to work around it instead of trying to fix it. Change-Id: Ib5124d72466a77cf3f28ed3e14cc4c231bdce4c4
* buildsystem: Comment strip commandRichard Maw2015-06-121-0/+7
| | | | Change-Id: Ib8ed113731590b3c9bc3559fb07820bd25c462b8
* buildsystems: Add strip commandsRichard Maw2015-06-121-0/+21
| | | | | | | This adds strip commands to all build systems, that will be hooked up into the cache and build logic. Change-Id: I37ad3e43311a417a949e7dfef860a50fdf6b8c43
* Use the modern way of the GPL copyright header: URL instead real addressJavier Jardón2015-03-161-3/+2
| | | | Change-Id: I992dc0c1d40f563ade56a833162d409b02be90a0
* buildsystem: Generate a Morphology not textAdam Coldrick2014-08-141-11/+8
| | | | | Rather than generating the text of a morphology which is later loaded, generate a Morphology object and return that.
* Add detection for cmake and qmake build systemsRichard Dale2013-05-291-0/+57
| | | | Add tests for cmake and qmake build systems
* Fix copyright yearsSam Thursfield2013-03-071-1/+1
|
* Add pre- and post-commands for chunksLars Wirzenius2013-02-191-0/+12
| | | | | | | | We already have configure-commands. Add pre-configure-commands and post-configure-commands. Likewise for build-command, test-commands, and install-commands. Added-to-pacify: Rob Kendrick
* Revert "Merge remote-tracking branch 'origin/jonathanmaw/autotools-sysconfdir'"water-bombSam Thursfield2012-11-131-1/+1
| | | | | | | | | | cmake has a ./configure, which accepts --prefix, but chokes on --sysconfdir This means that bootstrap is broken by this commit. This reverts commit 5f22ded9711a047704fc91b68a182b057e29bc0f, reversing changes made to e13753d4f3e26f3a4c705fb3e694ae8dea860c2d.
* Set sysconfdir to /etc when morph builds an autotools projectJonathan Maw2012-11-081-1/+1
| | | | | | Some autotools projects default their sysconfdir to $prefix/etc. This leads to some projects trying to install files to /usr/etc, which is not desired.
* Refactor build system code for easier testingSam Thursfield2012-08-241-13/+10
|
* Use git ls-tree to autodetect build systemSam Thursfield2012-08-241-1/+3
| | | | | | | The cost of one git ls-tree call is roughly the same as one git cat-file call. Therefore, when autodetecting the build system, it is much faster to list the tree once and then search for the required files than to call git cat-file for every possible one.
* Add support for autogen in addition to autogen.shLars Wirzenius2012-08-081-1/+3
| | | | | | | | This is needed to support Colin Walters's suggested build API (http://people.gnome.org/~walters/docs/build-api.txt). In fact, it's all we need to support it, I think. Reviewed-By: Richard Maw (on irc)
* python scripts: pep8ize codebaseRichard Maw2012-08-011-34/+33
| | | | | | | | | This was done with the aid of the pep8 script, available by running `easy_install pep8`. It may be worth making this part of ./check, but that will require putting pep8 into the development tools stratum. This should be easy, given pep8 has no external dependencies.
* Merge remote branch 'origin/samthursfield/avoid-double-configure'Lars Wirzenius2012-07-181-0/+1
|\ | | | | | | Added a missing "export" and reformatted long lines a bit.
| * Avoid running configure twice on Autotools projectsSam Thursfield2012-07-181-1/+1
|/ | | | | We can set NOCONFIGURE=1 to prevent ./autogen.sh from running configure
* CPANBuildSystem: split command into linesRichard Maw2012-04-251-1/+7
|
* CPANBuildSystem: install into perl dirs insteadRichard Maw2012-04-251-1/+1
| | | | | | This is needed because otherwise it will install the .pod file into where the building perl expects it to be, which we should not assume is the same as what we are building for.
* CPANBuildSystem: install to standard pathsRichard Maw2012-04-241-1/+1
| | | | | | | This needs to be set otherwise the paths of the perl building it will be used. This needs to be kept in sync with the perl that is being built as well otherwise it won't be able to find modules
* CPANBuildSystem: use $PREFIXRichard Maw2012-04-231-1/+1
|
* CPANBuildSystem: use destdirRichard Maw2012-04-231-1/+1
|
* buildsystem: rename Perl build system to CPANRichard Maw2012-04-231-4/+4
|
* buildsystem.py: Add support for generic Perl build systemJavier Jardón2012-04-231-0/+28
|
* PythonDistutilsBuildSystem: set --prefixRichard Maw2012-04-231-1/+1
|
* buildsystem.py: autotools project can only have a 'configure' fileJavier Jardón2012-04-181-0/+1
|
* Add an auto-detected 'python-distutils' build system.Jannis Pohlmann2012-04-171-1/+28
| | | | | This might still require --prefix to be passed to the install command to work with custom prefixes.
* Make build system autodetection use an file existence function passed inLars Wirzenius2012-03-301-9/+14
|
* Change detect_build_system to not default to manualLars Wirzenius2012-03-301-4/+2
| | | | | | We do not want a manual build system if there is no morphology, since building with a no-op manual build system just hides the fact that the chunk can't be built because a morphology is missing.
* Make build system class return artificial text for missing morphologyLars Wirzenius2012-03-301-0/+14
|
* Add indexing access to the various commands in build systemsLars Wirzenius2012-03-301-0/+4
|
* Improve error message for unknown build system nameLars Wirzenius2012-03-301-1/+2
|
* Add the build commands for autotoolsLars Wirzenius2012-03-301-0/+15
|
* Add a dummy build systemLars Wirzenius2012-03-301-0/+16
|
* Add looking up of build systems by nameLars Wirzenius2012-03-301-4/+24
|
* Add default (empty) command lists for build systemsLars Wirzenius2012-03-301-1/+7
|
* Add autodetection for autotools, and a factory functionLars Wirzenius2012-03-301-0/+33
|
* STart a build system abstraction with autodetectionLars Wirzenius2012-03-301-0/+46