jack2/compat
David Runge aa27576236
Fix wscripts syntax (#826)
* Add flake8 configuration

.flake8:
Add flake8 configuration that limits the line length to 120 chars and
outputs to flake8.txt

* Add flake8.txt to gitignore

.gitignore:
Add flake8.txt (flake8 output file) to ignore.

* Syntax fixes and cleanup for top-level wscript

wscript:
Fix syntax of wscript according to pep8 (but do not break long lines).
Remove unused imports and move all module level imports to the top of
the file.
Fix broken build target of IIO driver (source argument to
`create_driver_obj()` supplied an uninitialized variable).
Break lines at 120 chars.

* Fix common/wscript syntax

common/wscript:
Fix syntax problems, unneeded imports and break lines at 120 chars.

* Fix compat/alloca/wscript syntax

compat/alloca/wscript:
Fix compat/alloca/wscript syntax

* Fix compat/wscript syntax

compat/wscript:
Fix compat/wscript syntax

* Fix dbus/wscript syntax

dbus/wscript:
Fix syntax and break lintes at 120 chars.

* Fix example-clients/wscript syntax

example-clients/wscript:
Fix syntax and remove commented code.

* Fix tests/wscript syntax

tests/wscript:
Fix syntax and commented code.

* Fix tools/wscript syntax

tools/wscript:
Fix tools/wscript syntax.

* Add github workflow for linting wscripts

.github/workflows/lint.yml:
Add github workflow for linting wscripts using findutils and flake8.

* Fix project version extraction in CI

.github/workflows/build.yml:
Adapt the project version extraction in CI to the syntax changes in
the top-level wscript.
2022-04-13 18:29:29 +01:00
..
alloca Fix wscripts syntax (#826) 2022-04-13 18:29:29 +01:00
README.md
wscript Fix wscripts syntax (#826) 2022-04-13 18:29:29 +01:00

README.md

Operating System Compatibility Modules for WAF

This directory contains waf modules that aid compatibility across different operating systems. Here a module is a pluggable and reusable piece of code for the waf build system along with necessary replacements.

To create a new compatibility module simply create a new subdirectory containing a wscript file and any necessary replacement files. The wscript must define the options, configure and build functions.

To use the modules you need to call recurse in your options, configure and build commands. For example

def options(opt):
    # Do stuff...
    opt.recurse('compat')
    # Do other stuff...

def configure(conf):
    # Do stuff...
    conf.recurse('compat')
    # Do other stuff...

def build(bld):
    # Do stuff...
    bld.recurse('compat')
    # Do other stuff...

assuming this directory is called compat. After doing this you need to take any necessary actions described in the modules you want to use.

The code in this directory is intended to be generic and reusable. When writing new modules, please keep this in mind. Whenever necessary it should be possible to make this directory a git submodule and all the subdirectories other submodules, to aid reuse.

If you would like to use these modules in another project, please file an issue so that we can join forces and maintain the compatabilitiy modules in a separate repository.