[Scons-users] SCons.Node.Python.Value on target_factory

Bill Deegan bill at baddogconsulting.com
Sun Apr 7 21:11:51 EDT 2013


Any reason your not just doing Execute(your_actions)?
Are you using the dependencies? It looks like not.
Unless I'm misunderstanding, you just want an alias to run some commands
for you.


On Sun, Apr 7, 2013 at 5:39 PM, Philipp Kraus <philipp.kraus at flashpixx.de>wrote:


>

> Am 08.04.2013 um 01:54 schrieb Bill Deegan:

>

> You've yet to address some questions from my previous message:

> Can you paste an example invocation of your GitPull builder?

>

>

> Yes, see the SConstruct in the link (branch Python.Value is a full working

> example).

>

> env.GitClone("gittest", "https://github.com/flashpixx/Storage.git")

> env.GitPull("#target-not-needed", "gittest")

>

> The clone command clones the sources, but the pull builder seems not to be

> run, only if

> the target_factory = Scons.Python.Value.

>

> You can copy also this short example to a SConstruct, it reproduce the

> problem:

> ------------

> import SCons.Action

>

> env = Environment()

>

> env["BUILDERS"]["WithPyValue"] = SCons.Builder.Builder( action =

> SCons.Action.Action("echo testbuild 1"), target_factory =

> SCons.Node.Python.Value )

> env["BUILDERS"]["WithoutPyValue"] = SCons.Builder.Builder( action =

> SCons.Action.Action("echo testbuild 2"), source_factory =

> SCons.Node.Python.Value )

>

> env.WithPyValue("target1", "source1")

> env.WithoutPyValue("target2", "source2")

> ---------------

>

> On my OSX I get:

>

> scons: Building targets ...

> echo testbuild 2

> testbuild 2

> scons: done building targets.

>

> the first builder is not run.

>

>

> Your implementation looks reasonable.

>

> Did you read the comments on the SourceCode() builder (which is

> deprecated)?

>

>

> Yes, i have read this

>

>

> Any particular reason you want to have your source code checkout and in in

> your SCons logic?

>

>

> Yes, in my projects I create always an alias for building all depended

> libraries from their sources, because

> manual download / clone / checkout, extracting, compiling

> are interminable, so I use Scons for this

> building process. This process must be run once, but I need different

> sources (HTTP download, Git clone, SVN checkout).

> I do this, because I don't want to explain all difference of the library

> install procedure for new project members (eg students

> which are working first time with the project).

> Okay, I would have implementated only the clone / checkout function or use

> env.Command, but for practice use I would like to implementate

> also the pull / commit calls.

>

> This builder should not be used for the main code base, but rather on

> install the project library base.

>

>

>

>

> On Sun, Apr 7, 2013 at 4:13 PM, Philipp Kraus <philipp.kraus at flashpixx.de>wrote:

>

>>

>> Am 08.04.2013 um 00:21 schrieb Bill Deegan:

>>

>> Are you trying to implement something like what the old SourceCode()

>> builder was?

>> http://www.scons.org/doc/production/HTML/scons-man.html

>>

>>

>> I think so, I have created a branch, which shows the Python.Value call

>> https://github.com/flashpixx/Storage/tree/Python.Value/Scons

>>

>> The SConstruct runs first the "clone" builder, after that the pull, but

>> the pull isn't working (the message isn't shown)

>> in the site_scons/site_tools/Repository.py the line 95 is modified, I

>> have added the target_factory.

>>

>> Is the implementation if my builder correct?

>>

>> Thanks

>>

>> Phil

>>

>>

>> On Sun, Apr 7, 2013 at 3:19 PM, Bill Deegan <bill at baddogconsulting.com>wrote:

>>

>>> Seems like you should specify the target_factory as Dir, and the

>>> source_factory as a Value if the action is a git pull?

>>>

>>> Regardless, when trying to understand such logic, you're always better

>>> off to make a simple single file SConstruct and get it working the way you

>>> expect.

>>> Even make the action just an echo of source and target..

>>>

>>> Can you paste an example invocation of your GitPull builder?

>>>

>>> -Bill

>>>

>>>

>>> On Sun, Apr 7, 2013 at 2:30 PM, Philipp Kraus <

>>> philipp.kraus at flashpixx.de> wrote:

>>>

>>>> Hi Bill,

>>>>

>>>> I have added a Builder for Git & SVN support (builder source:

>>>> https://github.com/flashpixx/Storage/blob/master/Scons/site_scons/site_tools/Repository.py and

>>>> my example repo) and I add in the generate eg

>>>>

>>>> env["BUILDERS"]["GitPull"] = SCons.Builder.Builder( action =

>>>> SCons.Action.Action("${REPOSITORY['GIT']['PULL']}"), source_factory =

>>>> SCons.Node.FS.Dir, single_source = True, PRINT_CMD_LINE_FUNC =

>>>> __GitPullMessage )

>>>>

>>>> If I add "target_factory = SCons.Node.Python.Value" I can call the

>>>> builder with env.GitPull

>>>> but the action is not run. If I remove the target_factory option or

>>>> change it to Dir / File (all except Python.Value),

>>>> the builder works well.

>>>> If I set the source_factory to Python.Value and the target_factory to

>>>> eg Dir, everything works fine.

>>>>

>>>> The code works at the moment fine, it is only a question to understand

>>>> the different factories.

>>>>

>>>> Thanks

>>>>

>>>> Phil

>>>>

>>>>

>>>>

>>>> Am 07.04.2013 um 22:49 schrieb Bill Deegan:

>>>>

>>>> Phil,

>>>>

>>>> So something like:

>>>>

>>>> env.Command(Value('blah'),'mysource.txt')

>>>>

>>>> ?

>>>> What is the source to your builder? has it changed?

>>>>

>>>> -Bill

>>>>

>>>>

>>>>

>>>> On Sun, Apr 7, 2013 at 12:51 PM, Philipp Kraus <

>>>> philipp.kraus at flashpixx.de> wrote:

>>>>

>>>>> Hello,

>>>>>

>>>>> I use on my builder for the target_factory a SCons.Node.Python.Value,

>>>>> because

>>>>> the target is in my builder is not used by the action. On this

>>>>> target_factory the action of the builder is not run. I have removed

>>>>> the target_factory option of the builder and the builder runs.

>>>>>

>>>>> Why does the builder not run, if I set the target_factory to the

>>>>> Python.Value?

>>>>>

>>>>> (tested under Scons 2.2.0 & 2.3.0)

>>>>>

>>>>> Thx

>>>>>

>>>>> Phil

>>>>>

>>>>> _______________________________________________

>>>>> Scons-users mailing list

>>>>> Scons-users at scons.org

>>>>> http://four.pairlist.net/mailman/listinfo/scons-users

>>>>>

>>>>>

>>>> _______________________________________________

>>>> Scons-users mailing list

>>>> Scons-users at scons.org

>>>> http://four.pairlist.net/mailman/listinfo/scons-users

>>>>

>>>>

>>>>

>>>> _______________________________________________

>>>> Scons-users mailing list

>>>> Scons-users at scons.org

>>>> http://four.pairlist.net/mailman/listinfo/scons-users

>>>>

>>>>

>>>

>> _______________________________________________

>> Scons-users mailing list

>> Scons-users at scons.org

>> http://four.pairlist.net/mailman/listinfo/scons-users

>>

>>

>>

>> _______________________________________________

>> Scons-users mailing list

>> Scons-users at scons.org

>> http://four.pairlist.net/mailman/listinfo/scons-users

>>

>>

> _______________________________________________

> Scons-users mailing list

> Scons-users at scons.org

> http://four.pairlist.net/mailman/listinfo/scons-users

>

>

>

> _______________________________________________

> Scons-users mailing list

> Scons-users at scons.org

> http://four.pairlist.net/mailman/listinfo/scons-users

>

>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://four.pairlist.net/pipermail/scons-users/attachments/20130407/c1f45490/attachment.html>


More information about the Scons-users mailing list