Re: [Scons-dev] Scons-dev Digest, Vol 57, Issue 9

2016-09-19 Thread Left Right
OK, after the dust settled, I regret the tone of the message, but
there's really nothing of interest in it for the users mailing list.

This is really intended for the developers of Scons.  For the last two
months I've been looking for a build tool to build two things: Go
programs and Docker images.  I've considered and even to some extent
wrote working builds in:
- SCons
- WAF
- Gradle
- tup
- Blaze
- Stag
I didn't really try to use Make, but it's not difficult to see how
that would fit into the picture.
The unfortunate conclusion is that all these "tools" are very poorly
engineered and some are also poorly executed.  They lack some obvious
basic functionality, they assume too much about what the user of the
tool is trying to do, impose arbitrary restrictions unrelated to the
task the user is trying to perform.  Of all of this collection SCons
appears to be the most tolerable option.  I don't suppose you are
interested in any sort of feedback on other tools, but there are some
thing you might reconsider about SCons.  This isn't about the user
experience, this is about the code of the program and about the
decisions which made it to be this way.

1. Classes with several dozens of methods.  There really shouldn't be this many.
2. Comments and documentation are unhelpful.  They are written from
the perspective of someone who wrote the code, but they don't help the
reader.  There is no birds-eye overview of the system.  (But, compared
to the list above, at least you have some).
3. Everything happens "by chance", when you read the code you always
need to guess the state of the object the method it is working with,
this is including the class of the object and the values of several
dozens of fields the object has: you pull a rope at one end, and from
the other end firebreathing dragons begin to emerge.
4. Object's functionality is encoded into strings which are passed
around at will and are next to impossible to track before the program
is actually executed.
5. There isn't that much of codebase, but it is so immensely twisted
that following the path of code execution is very difficult: you keep
going in circles, you keep wondering about some functions with
suggestive names never being called.
6. Lots of implicit assumptions, for whatever reason inputs and
outputs are assumed to be actual files on filesystem.  I've never seen
this being the case, unless in helloworld examples.
7. Functionality is duplicated many times over.  Why is there emitter
and builder?  Why is there action and command?  Why are there
factories, suffixes and scanners?  Jobs and tasks?  The code clarity
could be greatly improved if these things are deduplicated.  The
answers might seem obvious to you as someone who wrote these, but if
you try to don the hat of the reader, you'll see how they don't make
sense.

I don't intend for this message to grow into a discussion, I just put
it here as a feedback on the state of the project as perceived by an
external observer.  But if you are interested, I can expand on the
bullet points above.  I understand that this much criticism is hard to
take, especially from an unknown outsider.  Anyhow, believe it or not,
this was written in hopes to actually improve this program.  Hope
you'll see it that way.

Best.

Oleg

On Mon, Sep 19, 2016 at 8:43 AM,  <scons-dev-requ...@scons.org> wrote:
> Send Scons-dev mailing list submissions to
> scons-dev@scons.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://pairlist2.pair.net/mailman/listinfo/scons-dev
> or, via email, send a message with subject or body 'help' to
> scons-dev-requ...@scons.org
>
> You can reach the person managing the list at
> scons-dev-ow...@scons.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Scons-dev digest..."
>
>
> Today's Topics:
>
>1. Don't want to use target as source... (Left Right)
>2. Re: Don't want to use target as source... (Bill Deegan)
>
>
> --
>
> Message: 1
> Date: Sun, 18 Sep 2016 18:45:10 +0300
> From: Left Right <olegsivo...@gmail.com>
> To: scons-dev@scons.org
> Subject: [Scons-dev] Don't want to use target as source...
> Message-ID:
> <cajqbtgmecnwashhuzacnm1f2azjk953o42ehkbrninu4wux...@mail.gmail.com>
> Content-Type: text/plain; charset=UTF-8
>
> Hello,
>
> I'm trying to write a builder which doesn't take a file as a source.
> The whole area of source_factory and target_factory in Builders is a
> huge mess, and it's impossible to understand why things produce the
> results they do.  For instance, one extremely undesirable behavior, of
> which I cannot find the source is that if the source isn't given, then
> the target assumed to be the source.
>
> Basically, I

[Scons-dev] Don't want to use target as source...

2016-09-18 Thread Left Right
Hello,

I'm trying to write a builder which doesn't take a file as a source.
The whole area of source_factory and target_factory in Builders is a
huge mess, and it's impossible to understand why things produce the
results they do.  For instance, one extremely undesirable behavior, of
which I cannot find the source is that if the source isn't given, then
the target assumed to be the source.

Basically, I need something that works like Library() builder.  I
tried to read the code, but after ten delegations of delegations to
delegations to other delegations I've lost track.  Even simpler.  I
want the source to be a directory.  Not a file.  I can write a scanner
that generates all file names given the directory name, but I keep
running into unrelated errors in Scons code which assume too much
about what things can be built and the way to do that, and they are
never right.

Bottom line: isn't there any way to circumvent all the layers of
needless abstraction on top of Node and Builder classes and just have
access to the database and tasks / jobs?  Example would help hundred
times more than an explanation.

Thanks.
___
Scons-dev mailing list
Scons-dev@scons.org
https://pairlist2.pair.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Scons-dev Digest, Vol 56, Issue 3

2016-09-12 Thread Left Right
Sorry, I know this is old, but after trying a few things... I still
cannot find the place where your code checks if outputs are up to
date.

Below is the minimal example of what I tried based somewhat on
SCons.Python.Value.

import subprocess
import os
import SCons.Node

def exists(env):
return subprocess.call("command -v docker") == 0

def docker_build(target, source, env):
copy = os.environ.copy()
# do some stuff with environment
docker_file = source[0].path
ctx = source[0].get_dir().path
out = subprocess.check_output(
["docker", "build", "--no-cache=true", "-q", "-t", tag, "-f",
docker_file, ctx],
env = copy)
# some more stuff with output

class DockerImage(SCons.Node.Node):
# here I'm lost

def generate(env):
env["BUILDERS"]["Docker"] = env.Builder(
target_factory = DockerImage,
action = env.Action(
docker_build,
lambda t, s, e: "docker build: %s" % s[0].path))


I've overloaded every method I could find from Node, Base, File and
Dir. The only method that get's called is the builder_set() - which
does nothing valuable. However, if I make this an input node rather
than output, then changed_since_last_build() does get called...  I
know that Executor is created for this builder and I know that
__call__() of this builder is called just the same way any other
builder would.  But it's impossible to find why anything is called or
when and what the expected result should be.  I'd expect this to give
an error, or to ignore the setting - instead, if I don't set
target_factory - the builder always runs, and if I don't, then the
builder always acts as if it is up to date.

Bottom line: how do I implement "outputs up to date" check?  I don't
care if it's a lot of work, I just need something / someone to explain
what makes this check.

TIA.

On Fri, Aug 5, 2016 at 8:43 AM,  <scons-dev-requ...@scons.org> wrote:
> Send Scons-dev mailing list submissions to
> scons-dev@scons.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://pairlist2.pair.net/mailman/listinfo/scons-dev
> or, via email, send a message with subject or body 'help' to
> scons-dev-requ...@scons.org
>
> You can reach the person managing the list at
> scons-dev-ow...@scons.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Scons-dev digest..."
>
>
> Today's Topics:
>
>1. Builder with custom decider and non-file based target (Left Right)
>2. Re: Builder with custom decider and non-file based    target
>   (Dirk B?chle)
>
>
> --
>
> Message: 1
> Date: Thu, 4 Aug 2016 14:55:21 +0300
> From: Left Right <olegsivo...@gmail.com>
> To: scons-dev@scons.org
> Subject: [Scons-dev] Builder with custom decider and non-file based
> target
> Message-ID:
> 

[Scons-dev] Builder with custom decider and non-file based target

2016-08-04 Thread Left Right
Hello list.

I'm trying to come up with a builder for Docker images. Docker images
are built based on a Dockerfile template and a bunch of other sources
one way or another related to the template. The output, however, isn't
a file strictly speaking. The builder should combine two Docker
operations: build+push, thus the final build artifact is the image
residing in Docker registry (a server with it's own database,
accessible via HTTP).

What I'd like to accomplish is the following:
1. Create Docker Builder s.t. given the Dockerfile and other auxiliary
files will call "docker build", then "docker push" to produce the
build artifact and to put it in the Docker registry.
2. Prevent building images if a query to Docker registry for a
previously built image succeeds.

I'm now looking at target_factory of SCons.Builder, but I'm not sure
this is the way to proceed. Please advise.

Thanks.

Oleg
___
Scons-dev mailing list
Scons-dev@scons.org
https://pairlist2.pair.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Possible minor bug + how to get (or assign) a builder to a file node?

2012-10-08 Thread Left Right
 You can't stick a dictionary in a shell environment variable...

Why would I want to pass dictionary to shell? I think about the build
script as being a little program that is written in Python, not a list
of commands to path to the shell. That's why I've chosen Python to
begin with!

 It seems that you think that your build doesn't follow these rules, and as 
 such want to build something else on top of SCons.
 If that's the case your path will be much more difficult (think square peg, 
 round hole)

Yes, it is different, of course it is! Is it entirely incompatible as
you say?.. well, I need only very few things from SCons, and am
willing to do the rest on my own, in the way I think better suits my
needs, is that a crime? :) I'm absolutely not a Make person, I come
from Ant / Maven background and think of building a project more in
terms of those tools.
I don't like Ant or Maven for not being real programming languages
(writing more complex build scripts in either of them ends up in a lot
of unrewarding labour, using low quality tools - no proper booleans,
neither string manipulation, nor even math etc.) This is why Python. I
used Python for writing little pre-processing scripts to build my own
projects, but seeing how I'm repeating myself over and over again, I
decided to invest more effort and make something reusable.

Anyways, thank you for your patience, I'll try not to abuse it further!

 I agree with Bill; I don't think SCons as it exists now is going to serve
 your needs.  It ought to be possible to build Flash with SCons (
 http://www.wrwrwr.org/scons shows up when I google SCons flash) but I
 think you are looking for a type of process that is pretty different from
 how SCons is organized.

I saw wrwrwr project, and that's why I decided to do it from scratch
:) What that project is trying to do, is it's trying to do the
compiler's job at locating the sources, for example. And it fails to
do it at any non-trivial project. I mean, the compiler itself is too
compilcated, to even try to predict what sources exactly will it
use... But not only it is difficult, it is absolutely unnecessary...
It can only handle some very small % of what compiler can do. I.e. you
can barely pass a handful of options to the compiler by using it,
while there's like ten times more, etc., etc. With all due respect,
that project isn't usable as it is...

Best.

Oleg
___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Possible minor bug + how to get (or assign) a builder to a file node?

2012-10-07 Thread Left Right
 SCons can do this for you..
 You can use something like this for your action:
 env['CCCOM']  = '${TEMPFILE($CC $_MSVC_OUTPUT_FLAG /c 
 $CHANGED_SOURCES $CFLAGS $CCFLAGS $_CCCOMCOM)}'

 the ${TEMPFILE(?.)}  will output the contents to a file to get around long 
 compile line issues.

Nope, that's not going to make it... the things to put into temp file
need a lot of parsing, you can't just concatenate that. It's going to
be couple hundreds lines of code. But I don't really need SCons to do
this for me. This is something I feel confident I can handle myself. I
would actually feel more comfortable doing this on my own. Is there a
reason why I shouldn't?
Here's an example of the file I'll have to generate:
http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/frameworks/flex-config.xml

 You should read this section:
 http://scons.org/doc/production/HTML/scons-user/c2092.html

OK... now I see where the misunderstanding comes from. Well, I don't
need this! :) I'll try to explain.
I've chosen specifically SCons because it is written in Python. Python
ideologically and syntactically is similar to AS (the language used in
Flash). It is way more convenient to use Python to write build
scripts, then say, Ant or Maven (at least for someone who uses Flash).
Hold on. Most people who will be building the projects are programmers
themselves, they are not users who need to build and install the
software, like one would do with configure - make - make install
process. Most of what comes out of Flash aren't programs (they are web
applets), while there are few options to produce desktop applications,
those are rare, and most of the times, users will get a compiled
binary + installer and never build it on their own.
This means that the use case of specifying additional options on the
command line will be vanishingly rare / I don't even expect anyone to
do it! What is most likely to happen is that users of the tool will
write more elaborate build scripts, with a lot of custom Python code.

So, I don't need / am not interested that much in reading command line
options beyond what's already in place - no *real* user will ever use
the program in that way. What I need is a comfortable interface for
specifying the option in the build script. And, in my humble opinion,
env. = Environment(variables = Variables(bar))
is better then
env['FOO'] = bar
which is still better then
env['ENV']['FOO'] = bar
Mainly because the first one allows documentation, and the second one
is shorter.

 That's fine when compiling on the command line manually, but doesn't really 
 scale to a repeatable process doe it?

 You need to think in terms of sources and targets, and flags which affect the 
 generation of the command line.
 So if it's common for a user to specify --include-library, then you might 
 make a variable FLEX_INC_LIBS, which then get's expanded using probably 
 _concat
 (Here's an example from Default.py)
 '_LIBFLAGS' : '${_concat(LIBLINKPREFIX, LIBS, LIBLINKSUFFIX, 
 __env__)}',

Not a chance someone will call the build tool specifying these options
every time on the command line! Not even once! :D I wasn't even
imagining anything like that. In my ideal situation the build will
look like so:

env = Environment(tools = ['scons-flash'],
  ENV = {'FLEX_HOME' : '/home/wvxvw/Projects/Flex/4.6/'
  'MXMLC_OPTIONS' : { 'debug': True, ...
 'compiler' : { 'keep': True, ...
'fonts' : {
'font-manager': Blah ... )
env.Swf(source='./src/tests/Test.as',
target='./bin/Test.swf',
override_compiler_options = { ... })

I sure want to avoid having to interpolate options into strings. I.e.
'$OPTION=value' is not good. The example below should illustrate what
I would expect from users to be doing, when they need to include
something.

def gen_includes():
for (dirpath, dirnames, filenames) in os.walk(only_user_knows_where):
directories = [d for d in dirnames if should_inculde(d)]
return directories

env.Flash(..., compiler_options = { 'include-library' : gen_includes() })

There's another particular inconvenience about options being strings
in that compiler doesn't follow GNU rules for short / long options and
how things should be read / understood. It's close, but it's
incorrect, and it will conflict with the common way to do that. I.e.
options never start with double hyphen, but there are short / long
options, and they both can be followed by either space or equals sign
(sometimes += too). That's something I'll have to parse on my own,
unfortunately.

 http://scons.org/wiki/ToolsForFools

I've read that. Not meaning to criticize, there are some parts of
SCons code (I'm talking specifically about Action and perhaps
Executor), which are, erm... very hard to use in a different setting.
For the quick test it was easier to remove them, then to try to
understand the particular 

Re: [Scons-dev] What should I return from generator function?

2012-10-05 Thread Left Right
 The generator should return an Action or something that can be turned
 into an Action.
 See http://www.scons.org/doc/HTML/scons-user/x3755.html

 The only things that can be turned into Actions are a string (which is
 a command to be executed), or a python function (which gets run when
 the action is executed), or lists thereof.

 (see http://www.scons.org/doc/production/HTML/scons-api/index.html if
 you really care.)

 --
 Gary

Thanks for ongoing help, but I'm more puzzled then before :)
_execute function runs from _inside_ the action. And the action that
runs this function expects it to return... another action (this is a
plausible scenario if actions have to be chained, but in my case they
are not)?
I actually could get it working, but in a way, which is probably very
bad... I've overridden the _execute() function in BuilderBase and
removed all mentions of generator and action + all calls that would
cause any reference to either one of these. Now, I'm probably missing
a whole lot of things, if I'm not using action or / and executor, but
I fail to understand how to use them...
One thing I'm concerned with is - it was trying to generate file nodes
from the files, and this went down the drain too... was it important?
How important is it?

So, what are the consequences of not using any of these?
To elaborate: a typical build process of a project is somewhat
involved - you certainly cannot describe it as a single command-line
operation (so action as string is not an option). And I'm having
problems using a function inside the action for two reasons:
- calling the function in this way doesn't let me access associated
builder info (and this is the very important part of the process),
while what it passes into action-function is not important / I could
absolutely do without it.
- I can only prevent the calling action from expecting me to return
another action by weird hack in the BuilderBase. I'm specifically
talking about _do_create_action - this function is called despite my
best effort of avoiding it...
___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Possible minor bug + how to get (or assign) a builder to a file node?

2012-10-05 Thread Left Right
 1. What are your inputs?
 2. What are your outputs?
 3. How do you determine flags for compiling?

 Based on your previous emails:

 the compiler does almost all the job, it find the required sources
 by inferring from the code what it should be looking for


 So it parses the sources looking for info on it's dependencies?

 For instance, the compiler has a concept of modules, so it would
 compile a group of files, and then would compile a module using the
 first group in a similar way you'd use headers in C, when linking
 dynamic libraries.

 How does it determine the modules?

 Step 1: I've overridden _execute in FlashBuilderBase in order to be
 able to gather some important information about the project (often
 times Flash comes with Eclipse-style project files, so I'm parsing
 the project file, and interpret the information I find in it in a
 way it will be useful later during the build).

 Is the project file for all sources you're trying to compile, or per
 module, or some other grouping?

 As Gary stated in another email, you probably can use a separate
 environment per group of code to get the appropriate flags to them.

 -Bill

The inputs fall under 5 major categories:
- Eclipse-style project
-- Flash Builder project
-- FDT project
These are usually XML files that describe a project, they contain
compilation settings, maybe for multiple sub-projects, this is more
like SLN files in MSVS. So, I'm parsing these and trying to come up
with a way to run the compiler (+ some other tools some times) to
replicate what would IDE do during the compilation process.

- FlashDevelop project
This is similar to Eclipse projects except for there may be multiple
projects in the same directory.

- Single source file as an input (possible variants are *.as, *.mxml or *.css)

- Multiple source files or a manifest containing a list of files to compile.

- AIR project is a kind of project which uses a special manifest file.
Using this manifest file it packages what was compiled from other
sources.

- Documentation generator, this is very similar to multi-source one.


The outputs may be:
- a single SWF or SWC files (an applet binary or a library)
- multiple codependent SWFs or SWCs.
- documentation (multiple HTML files)
- AIR executables, Android installers and iOS installers

Flags for compiling:
The compiler comes with a file with most of the defaults set in some
way, there are these possible ways to override these defaults:
- provide an additional (xml) file with settings (that's how I'm going
to go about compilation).
- specify these settings on command line when calling the compiler (in
the worst case you risk to overload the command line, it may easily
get too long).
- read some of them from the source code - there are some particular
compiler metadata that instructs it about project settings / parts
(none of my concerns, the compiler will do here on its own)
- some, however very few can be set as environment variables, this is
not an idiomatic way to do it, and only very few (basically, only the
compiler location and some Java-related settings) can be set in this
way - again, none of my concerns. The script would however very likely
need to read the compiler location from user in some way - it's
uncommon to install compiler on PATH / alias it for availability or
similar. It is rather more common to have multiple version installed
simultaneously.

 So it parses the sources looking for info on it's dependencies?
It's not that simple... some times you need to help it. I.e. you may
force including a source, which isn't referenced directly from code,
or you may ask it to not link statically a particular source, because
you will provide it at runtime. And, in case when you compile a
library, you will most certainly be looking for the list of sources on
your own (just list all sources in a directory is what will do in most
cases).

 How does it determine the modules?
It knows certain classes that extend certain other classes to be the
modules. But this is a lot of parsing! I'm not doing it no way! :) But
if it comes in a shape of Eclipse project, I'll have that info from
the project settings.

 Is the project file for all sources you're trying to compile, or per
 module, or some other grouping?

Well, there are different kinds of projects... FlashDevelop projects
have only one target per project and don't define modules. Only
FlashBuilder or FDT projects do. In all other cases users would have
to mimic what projects do on their own. I.e. they would define two
projects as depending on each other etc.

There's a lot more stuff I hoped to do at some point (alternative
compilers, linkers, transcoders etc) but I won't go into details now.

Re' environment. I'm not sure yet... can I somehow make users create a
different environment, when they do Env()? To be honest, I can't find
a way to change anything about this object, I took it for granted that
this is what I'm to deal with. I 

Re: [Scons-dev] Possible minor bug + how to get (or assign) a builder to a file node?

2012-10-04 Thread Left Right
Can you back up a few steps and say what you're trying to do?  (Note
that you say you're creating a File Node, but the code you show is for
a subclass of Builder, which is pretty odd.)  Have you been through
Chapter 18 of the User's Guide?
http://www.scons.org/doc/production/HTML/scons-user/c3621.html

--
Gary

Thanks for reply. I'm probably that deep because of a mismatch in
the regular way C or Java projects are built vs Flash. The thing is,
managing sources is very simple in Flash (the compiler does almost all
the job, it find the required sources by inferring from the code what
it should be looking for), but there are many configuration settings
that one should pass to compiler, which are given per project, or per
certain part of the project.

So, I'm much more interested in having a reference to the builder in
the generator function, then the source file names (I can obtain the
reference to the source files at any time, actually, and it's not very
important), but I need to somehow transfer a lot of information with
the group of files. For instance, the compiler has a concept of
modules, so it would compile a group of files, and then would compile
a module using the first group in a similar way you'd use headers in
C, when linking dynamic libraries.

Anyways, I think I can better explain my problem in terms of the code,
which isn't working quite as I'd need it to.

Step 0: I've extended BuilderBase with FlashBuilderBase and added this
builder to env[BUILDERS].
Step 1: I've overridden _execute in FlashBuilderBase in order to be
able to gather some important information about  the project (often
times Flash comes with Eclipse-style project files, so I'm parsing the
project file, and interpret the information I find in it in a way it
will be useful later during the build).
Step 2: This information is saved in a FlashBuilderBase field.
Step 3: The overriden _execute() calls super(FlashBuilderBase, self)._execute()
Step 4: BuilderBase._execute() at some point calls
self.action.batch_key(env or self.env, tlist, slist)
Step 5: batch_key() calls my generator function. In that generator
function I must have a reference to the builder which submitted the
source files, but I  can't because it is only in
Step 6: that BuilderBase._execute() calls t.builder_set(self) - and
this is too late :( because in my generator function I needed that
source.builder would give me the reference to FlashBuilderBase.

If I try to circumvent this by either calling
t.builder_set(FlashBuilderBaseInstance) before generator function is
called, it enters an infinite loop (why - I don't know yet)
Also, if I try, in FlashBuilderBase self.src_builder = [self] - this
enters infinite loop too.

I could find a solution by making generator function capture the
builder instance I need to acces in it, but this is super convoluted,
and it also means that I would need a function per builder (while it
could've been more generic).

What could've helped - is if BuilderBase._execute() called
t.builder_set(self) before it calls self.action.batch_key(env or
self.env, tlist, slist)

Sorry for a very long message!
___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


[Scons-dev] Creating an extension: where do I start?

2012-09-29 Thread Left Right
Hello list,

I tried SCons for several projects developed by other people and I
like it very much. Though, I'd like to know it better, and from the
inside too. I program mostly what is related to Flash, and so I would
like to have an extension that can handle Flash compilation and other
tools that come with it. My question is, could you point me to an
example of such an extension, or give an insight to what needs to be
done / what would be the best way to go about developing such
extension?
No time pressure / I'm doing this at my spare time, so if there's
documentation / reading materials on how to do that - I'd like to read
first :)

Thanks.

Oleg
___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Scons-dev Digest, Vol 5, Issue 24

2012-09-29 Thread Left Right
On Sat, Sep 29, 2012 at 6:00 PM,  scons-dev-requ...@scons.org wrote:
 Send Scons-dev mailing list submissions to
 scons-dev@scons.org

 To subscribe or unsubscribe via the World Wide Web, visit
 http://two.pairlist.net/mailman/listinfo/scons-dev
 or, via email, send a message with subject or body 'help' to
 scons-dev-requ...@scons.org

 You can reach the person managing the list at
 scons-dev-ow...@scons.org

 When replying, please edit your Subject line so it is more specific
 than Re: Contents of Scons-dev digest...


 Today's Topics:

1. Creating an extension: where do I start? (Left Right)
2. Re: Creating an extension: where do I start? (Dirk B?chle)


 --

 Message: 1
 Date: Sat, 29 Sep 2012 14:59:12 +0200
 From: Left Right olegsivo...@gmail.com
 Subject: [Scons-dev] Creating an extension: where do I start?
 To: scons-dev@scons.org
 Message-ID:
 CAJQBtgmE-sLa+oTUTp5gda7WNwS4ZPphY0MRACu1=hk7kni...@mail.gmail.com
 Content-Type: text/plain; charset=ISO-8859-1

 Hello list,

 I tried SCons for several projects developed by other people and I
 like it very much. Though, I'd like to know it better, and from the
 inside too. I program mostly what is related to Flash, and so I would
 like to have an extension that can handle Flash compilation and other
 tools that come with it. My question is, could you point me to an
 example of such an extension, or give an insight to what needs to be
 done / what would be the best way to go about developing such
 extension?
 No time pressure / I'm doing this at my spare time, so if there's
 documentation / reading materials on how to do that - I'd like to read
 first :)

 Thanks.

 Oleg


 --

 Message: 2
 Date: Sat, 29 Sep 2012 15:18:53 +0200
 From: Dirk B?chle tshor...@gmx.de
 Subject: Re: [Scons-dev] Creating an extension: where do I start?
 To: scons-dev@scons.org
 Message-ID: 5066f53d.8090...@gmx.de
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed

 On 29.09.2012 14:59, Left Right wrote:
 Hello list,

 I tried SCons for several projects developed by other people and I
 like it very much. Though, I'd like to know it better, and from the
 inside too. I program mostly what is related to Flash, and so I would
 like to have an extension that can handle Flash compilation and other
 tools that come with it. My question is, could you point me to an
 example of such an extension, or give an insight to what needs to be
 done / what would be the best way to go about developing such
 extension?
 No time pressure / I'm doing this at my spare time, so if there's
 documentation / reading materials on how to do that - I'd like to read
 first :)

 Thanks.

 Oleg
 ___
 Scons-dev mailing list
 Scons-dev@scons.org
 http://two.pairlist.net/mailman/listinfo/scons-dev


 Hi Oleg,

 you could start with section 18. Writing Your Own Builders of the User
 Guide and

http://scons.org/wiki/ToolsForFools

 , which deals with developing new builders and tools.
 Also, the index of out-of-core Tools

http://scons.org/wiki/ToolsIndex

 can point you to some real examples, e.g. the Qt4 builders.

 This should give you a little to read over the weekend. ;)

 Best regards,

 Dirk



 --

 ___
 Scons-dev mailing list
 Scons-dev@scons.org
 http://two.pairlist.net/mailman/listinfo/scons-dev


 End of Scons-dev Digest, Vol 5, Issue 24
 

Oh, cool,

Thanks Dirk. I'm taking a look at it.

Best.

Oleg
___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev


Re: [Scons-dev] Creating an extension: where do I start?

2012-09-29 Thread Left Right
Oh, cool,

Thanks Dirk. I'm taking a look at it.

Best.

Oleg

Sorry, replied to digest the first time.
___
Scons-dev mailing list
Scons-dev@scons.org
http://two.pairlist.net/mailman/listinfo/scons-dev