mirror of
https://gitlab.com/ita1024/waf.git
synced 2024-11-22 18:07:12 +01:00
48a4f6a765
When CDT is not included in the project (ie. we just have Python and/or Java) the current implementation would not create automatically a call to waf for the build stage. This patch adds in such cases an external builder that automates the call to waf without the need to manually configure one.
65 lines
1.7 KiB
Python
65 lines
1.7 KiB
Python
#! /usr/bin/env python
|
|
# encoding: utf-8
|
|
# Federico Pellegrin 2017 (fedepell)
|
|
|
|
"""
|
|
Example source tree to be used with eclipse extra.
|
|
|
|
First of all load the extra:
|
|
|
|
...
|
|
def options(opt):
|
|
opt.load('eclipse')
|
|
|
|
def configure(conf):
|
|
conf.load('eclipse')
|
|
...
|
|
|
|
Then after configuring the project you can anytime run:
|
|
|
|
waf eclipse
|
|
|
|
This will generate the needed configuration files for Eclipse:
|
|
-) .project is generic Eclipse project file
|
|
-) .cproject for C/C++ CDT
|
|
-) .classpath for Java JDT
|
|
-) .pydevproject for Pydev
|
|
|
|
If CDT is in the project (so at least one C/C++ build) then CDT builder
|
|
will be used to call waf as it is more versatile. If just JDT/PYydev are
|
|
used then an Eclipse external builder is defined that calls waf. This is
|
|
created in the file .externalToolBuilders/Waf_Builder.launch.
|
|
|
|
The example contains three directories with different supported languages
|
|
to demonstrate the features working for each of them, most importantly the
|
|
automatic addition of search paths for each language so referencing objects
|
|
or files in the IDE is done correctly. This is equivalent to configure
|
|
Eclipse by hand using Project->Properties and then each language menu.
|
|
|
|
Also the generic invocation for building and cleaning are redefined so
|
|
waf is called correctly when the respective actions are requested.
|
|
|
|
To test just the external builder definition just remove "c" from the
|
|
module_list below.
|
|
"""
|
|
|
|
|
|
module_list = 'c java python'
|
|
out = 'build'
|
|
|
|
def options(opt):
|
|
opt.load('eclipse')
|
|
# We recurse options in our submodules
|
|
opt.recurse(module_list)
|
|
|
|
|
|
def configure(conf):
|
|
conf.load('eclipse')
|
|
# We recurse configurations in our submodules
|
|
conf.recurse(module_list)
|
|
|
|
|
|
def build(bld):
|
|
bld.recurse(module_list)
|
|
|