| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
MSVC enhancement to add all remaining msvc batch file command-line options as SCons variables
|
| | |
|
| |
| |
| |
| | |
version. Add additional tests.
|
| | |
|
| |
| |
| |
| | |
exceptions available via MSCommon module.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
lex and yacc tools both got two new construction variables for specifying
side-effect creation of additional files, this method avoids the user
embedding the options in LEXFLAGS and YACCFLAGS - the latter lets
the commands generate the files, but the paths would not be properly
relocated by SCons, so if the build was initiated in a subdirectory,
the generated files would go into the top directory instead.
Fixes #4154
Signed-off-by: Mats Wichmann <mats@linux.com>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The mocked tools mylex.py and myyacc.py now understand the file-generation
options, and generate a dummy file with predictable contents, for
checking. This allows more testing of the path through the SCons support
for these two without needing live commands.
New tests added which invoke the file-generation options, and make
sure the extra files are created, and that SCons detects and tracks
the added targets. Work is done in a subdirectory, which exposes some
existing known inconsistent behavior (the regular generated file goes
in the subdir per the LEXCOM and YACCOM generated line, while the ones
generated from commandline options go in the topdir) - but we're going
to allow that behavior to continue for backwards compat.
Same fix applied to yacc tool that PR #4168 did for lex - do subst_list()
instead of subst() to preserve spaces in paths. That fix left the lex
tool unable to pass the new test, as it could not see the individual
arguments in the FLAGS variable, which was solved by indexing into the
subst'd list so we can iterate over the args again.
Test and tool cleanup; add DefaultEnvironment calls, etc.
Note this mentions, but does not address the problem described in issue 4154.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
| |
msvc_setup_env_tool that also registers the tool name. The new function may indicate that the tool should be included even when no instances of msvc are installed. This is necessary for some error checking. Add a tool name argument to msvc_setup_env_once as well. Add default msvc version detection. Add a global and environment local policy variable for handling warnings and/or exceptions: error, warn, ignore. By default warnings are produced. Update tests accordingly.
|
|
|
|
| |
dictionary when attempting to find a valid msvc batch script. Raise an MSVCVersionNotFound exception when the default msvc version is requested and there are no msvc versions installed. Suppress raising an MSVCVersionNotFound exception during default msvc tool initialization. Add additional tests.
|
|
|
|
| |
Signed-off-by: Mats Wichmann <mats@linux.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
mylex.py is now a general fixture
Some of the existing fixtures had a bit more cleanup.
the unneeded mylink_win32.py is dropped (only referenced by
a test which already skips on win32, and the general mylink.py
covers the win32 case anyway).
Signed-off-by: Mats Wichmann <mats@linux.com>
|
|
|
|
| |
Signed-off-by: Mats Wichmann <mats@linux.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To avoid double loops, a couple now use fileinput module.
CC and CXX tests switch to using general mylink.py fixture instead of
locally defined linker script. This did mean that the marker for the
mock linker that the script removes had to be harmonized as #link - some
were using /*link*/.
Could not switch CC/CXX to use the general mycompile.py mock compiler
due to difference in intent: mycompile.py is intended to plug in as a
*COM variable, which means the whole cmdline is in the caller's control.
mycc.py is intended to plug in as CC and mycxx.py as CXX, which means
standard os-dependent construction vars will be passed via the default
CCCOM and CXXCOM and have to be handled.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
| |
|
|
|
|
| |
temporary files
|
|
|
|
| |
find_vc_pdir_vswhere in vc.py.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
CompilationDatabase tests
|
| |
|
|
|
|
|
|
| |
Changes didn't work on Windows.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In a few places, a command line was built to execute a wrapper
script written in Python, but the Python used was not the one used
to invoke the test run (which is made available by TestSCons), but
the result of running test.where_is('python'). On a system which
still has the thing named 'python' resolve to Python 2, this fails,
through no fault of scons itself.
The two fixture wrapper scripts used occasionally by the tests
used subprocess.call; this is considered "old" though not marked
as deprecated at this time. Switched to subprocess.run. See:
https://docs.python.org/3/library/subprocess.html#older-high-level-api
One of these scripts was doing unnecessary bytes-twiddling.
Modernized the inline myswig.py script (in test/SWIG/SWIG.py).
This script was reformatted using Black along the way.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
| |
|
| |
|
|\
| |
| | |
[wip] Py38warns4 tests
|
| |
| |
| |
| | |
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
| |
| |
| |
| |
| |
| | |
On a linux host (missing some things that may be on the Travis CI
setup), Py3.8a3 now shows 19 fails, 1048 pass, with 84 Warning: messages.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
| |
| |
| |
| |
| |
| | |
Apply changes to quiet open-file warnings. Add docstring to a few.
Switch os.system usage to subprocess.call. Add if-main logic.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add subroutines that are declared pure and elemental to the test
of the Emitter. Note that in test_1.f90, the interface is repeated
in the submodule, whereas in test_2.f90 the interface is taken from
the module. Also note that the regex does not check whether
"module pure" or "module elemental" is actually followed by "subroutine" or
"function". This would be a syntax error and should trigger a compile time
error.
|
|/
|
|
| |
processing interface module declarations
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|