[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