MantisBT - Rosetta |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0000234 | Rosetta | [All Projects] Input Handling | public | 2013-03-28 09:56 | 2013-04-04 16:33 |
|
Reporter | smlewis | |
Assigned To | renfrew | |
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | |
Platform | | OS | | OS Version | |
Product Version | | |
Fixed in Version | Trunk | |
Application(s) Affected | scons |
Command Line Used | scons mode=A,B vs. mode=B,A |
Developer Options | Confirmed As Bug |
Fixed in SVN Version | 54684 |
|
Summary | 0000234: if you use multiple extras options, SCons does not order consistently |
Description | pasted from a list email from Doug Renfrew:
Also, for those who may be unaware, if you use multiple extras options, keeping them in the same order will avoid a lot of headache. For example...
./scons.py mode=release extras=mpi,static bin
./scons.py mode=release extras=static,mpi bin
produces two different directory hierarchies in rosetta_source/build. You will end up with two sets of binarys and end up doing two compiles.
This should probably be a bug. It could be fixed if scons would sort the extras list alphabetically.
|
Steps To Reproduce | |
Additional Information | |
Tags | No tags attached. |
Relationships | |
Attached Files | |
|
Issue History |
Date Modified | Username | Field | Change |
2013-03-28 09:56 | smlewis | New Issue | |
2013-03-28 11:40 | Sergey | Note Added: 0000220 | |
2013-03-28 11:45 | renfrew | Note Added: 0000221 | |
2013-03-28 11:45 | renfrew | Assigned To | => renfrew |
2013-03-28 11:45 | renfrew | Status | new => assigned |
2013-03-28 13:17 | renfrew | Note Added: 0000222 | |
2013-03-28 13:18 | renfrew | Assigned To | renfrew => |
2013-03-28 13:24 | renfrew | Note Added: 0000223 | |
2013-03-28 13:36 | smlewis | Status | assigned => acknowledged |
2013-04-01 19:01 | rmoretti | Note Added: 0000235 | |
2013-04-02 17:21 | renfrew | Note Added: 0000243 | |
2013-04-02 17:33 | renfrew | Note Edited: 0000243 | bug_revision_view_page.php?bugnote_id=243#r69 |
2013-04-04 16:31 | renfrew | Assigned To | => renfrew |
2013-04-04 16:31 | renfrew | Status | acknowledged => assigned |
2013-04-04 16:33 | renfrew | Fixed in SVN Version | => 54684 |
2013-04-04 16:33 | renfrew | Status | assigned => resolved |
2013-04-04 16:33 | renfrew | Fixed in Version | => Trunk |
2013-04-04 16:33 | renfrew | Resolution | open => fixed |
Notes |
|
(0000220)
|
Sergey
|
2013-03-28 11:40
|
|
If anyone know the place where extras is process: just use sorted(<extra list>) so it always the same... |
|
|
|
I am about to commit that change |
|
|
|
I have decided not to commit this yet.
Changing line 255 in rosetta_source/tools/build/setup.py from...
"-".join(options.extras)
...to simply...
"-".join(sorted(options.extras))
Prevents the creation of duplicated paths and different executable names, but a...
./scons.py mode=debug extras=static,mpi
...followed by a...
./scons.py mode=debug extras=mpi,static
...results in a full recompile.
Scons thinks they are different targets, I think. |
|
|
|
I do not currently know how scons decides what needs to compiled and what does not need to be compiled. But I suspect that also needs to be changed. I am unassigning this from myself since I suspect I can be of no more help. |
|
|
|
Line 180 in rosetta_source/tools/build/setup.py probably also needs to change
Or better yet, sort the options.extras where there loaded in the setup_build_options() function in the same file. Probably about line 128, where "default" is set as the default extras tag. |
|
|
(0000243)
|
renfrew
|
2013-04-02 17:21
(edited on: 2013-04-02 17:33) |
|
So I guess I lied about trying to be more help. This patch seems to do the trick
[code]
diff --git a/rosetta_source/tools/build/setup.py b/rosetta_source/tools/build/setup.py
index f48b502..cc34a5d 100644
--- a/rosetta_source/tools/build/setup.py
+++ b/rosetta_source/tools/build/setup.py
@@ -125,7 +125,9 @@ directory it is built to, and what settings it ultimately uses.
# Nothing special is currently done to select mode, kind or extras
if len(actual.extras) == 0:
- actual.extras.append("default")
+ actual.extras.append("default")
+ else :
+ actual.extras.data.sort()
return requested, actual
[/code]
|
|