improved regex, removing unnecessary plus sign (we want to match only one group)
reworked python matching (mostly for ubuntu I guess). In case of boost_python, tags and python version are optional, which should work on ubuntu and other cases, without duplicating matching patterns if we aren't searching for boost_python.
added back mandatory tags for the last line (for windows) and added a last line to match boost_lib only (arch/manjaro)
changed the way how the abi is generated, the tag for static (-s) is now added automatically based on the lib you specified in 'lib' and 'stlib'
added back --boost-mt
When checking file pattern, the abi is now optional in the last rule. It's now easier to find a lib on linux if your wscript if also configured for windows.
- removed "static" parameter, now use stlib to specify static libs (added a warning if you were using it)
- removed "mt" parameter, now specify it as part of the abi (see help)
- added "stlib" parameter, to specify which lib will be linked statically. "lib" is used to link shared libs.
explanation:
After struggling to link Boost.Log, the problem lies into which libs can/must be linked statically and dynamically.
I built a small test with only system, locale, log_setup, log and thread, and could link it as static.
But after adding boost_filesystem, I couldn't link everything as static anymore and would fail on a dependency in "locale" (icu, nconv).
Linking everything as shared would failed aswell (log). But linking only "locale" as shared, and the rest as static would work.
Hence the change.
Since I broke everything, I figured I would rework the "mt" parameter, since it's kinda part of the abi on windows.
Ensure the output directory is always created to avoid issues when
trying to install on a clean build.
Change-Id: I64be30348af7862971cbbc1f17bc53213b9998f3
Type: Bug Fix
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
Previously the msvc tool was re-using the install_task set up by ccroot
in apply_link by appending files to install_task.sources.
This is problematic because the install task is posted by the time the
call to install_files returns and the post method of the install task
copies files from sources to inputs and inputs as the list of files
that get installed. This usually worked due to the fact that the
install_task does not guard against getting posted multiple times. In
some situations such as installing and building a single target using
the --targets flag this was not working and pdb files would not be
installed.
This updates the msvc tool to create a separate task to install the
pdb files instead of re-using the existing install_task. This fixes
the issue observed with pdb files not being installed when building and
installing a single target and is also consistent with how other files
are being installed from ccroot such as in apply_implib and apply_vnum.
Change-Id: I9fc53061847453fdb5cf105f2276a2eab5fd43b4
Type: Bug Fix
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
This adds support to the doxygen tool for installing the documentation
that was generated. A new install_path attribute can be added to the
doxygen TaskGen to control where it should be installed to.
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
The doxygen tool had previously been modified to always run from the
root of the build directory. This was done as a workaround to allow
the OUTPUT_PATH in the doxyfile to contain a relative path. The tool
then had to be modified to fix up any relative paths in the Doxyfile
to be relative to the root of the build directory. This is problematic
because there are many DoxyFile parameters that can be relative paths.
This patch fixes up the logic to execute doxygen in the same directory
where the DoxyFile lives. This allows all relative paths in the
Doxyfile to work so they no longer need fixed up. It then updates the
logic for OUTPUT_DIRECTORY to handle relative paths correctly.
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
The following can be used to add asm outputs to a c++ task (gcc):
from waflib import Task
from waflib.TaskGen import feature, after_method
@feature('cxx')
@after_method('process_source')
def add_asm_outputs(self):
for tsk in self.compiled_tasks:
node2 = tsk.outputs[0].change_ext('.s')
tsk.env.append_value('CXXFLAGS', '-Wa,-adhln=%s' % node2.abspath())
tsk.outputs.append(node2)