Cannot build Phoenix from github master

Thomas Christensen wrote:

cloned github wxWidgets into ~/wxWidgets
cloned github Phoenix into ~/Phoenix

I do:

$ python build.py build

Since you are using the code from github instead of the source snapshot then you need to also generate the wrapper code, as well as the xml that is used to generate that code. Try this:

python build.py dox etg --nodoc sip build

···

--
Robin Dunn
Software Craftsman

Since you are using the code from github instead of the source snapshot
then you need to also generate the wrapper code, as well as the xml that
is used to generate that code. Try this:

python build.py dox etg --nodoc sip build

$ DOXYGEN=/usr/bin/doxygen python build.py dox etg --nodoc sip build

This is doxygen 1.8.1.2 (build.py downloads 1.8.2 x86-64 and I am on x86.)

The dox command completed though, but etg failed:

I am very interested in this project and appreciate any help I can get to get me started :slight_smile:

$ DOXYGEN=/usr/bin/doxygen python build.py dox etg --nodoc sip build

Build using: /usr/bin/python

2.7.3 (default, Sep 26 2012, 21:53:58)

[GCC 4.7.2]

Python’s architecture is 32bit

Running command: dox

./regen.sh xml

warning: ignoring unsupported tag `AUTOLINK_SUPPORT =’ at line 38, file Doxyfile

warning: ignoring unsupported tag `HTML_EXTRA_STYLESHEET =’ at line 340, file Doxyfile

Finished command: dox (22.530s)

Running command: etg

/usr/bin/python etg/_xrc.py --sip --nodoc

Traceback (most recent call last):

File “etg/_xrc.py”, line 211, in

run()

File “etg/_xrc.py”, line 204, in run

tools.runGenerators(module)

File “/home/thomasc/Phoenix/etgtools/tweaker_tools.py”, line 542, in runGenerators

g.generate(module)

File “/home/thomasc/Phoenix/etgtools/sip_generator.py”, line 46, in generate

self.generateModule(module, stream)

File “/home/thomasc/Phoenix/etgtools/sip_generator.py”, line 137, in generateModule

self.generateModuleItems(module, stream)

File “/home/thomasc/Phoenix/etgtools/sip_generator.py”, line 180, in generateModuleItems

function(item, stream)

File “/home/thomasc/Phoenix/etgtools/sip_generator.py”, line 428, in generateClass

self.generateDocstring(klass, stream, indent2)

File “/home/thomasc/Phoenix/etgtools/sip_generator.py”, line 598, in generateDocstring

sigs = ctor.collectPySignatures()

File “/home/thomasc/Phoenix/etgtools/extractors.py”, line 506, in collectPySignatures

f.makePyArgsString()

File “/home/thomasc/Phoenix/etgtools/extractors.py”, line 485, in makePyArgsString

s += '=' + '|'.join([_cleanName(x) for x in default.split('|')])

File “/home/thomasc/Phoenix/etgtools/extractors.py”, line 431, in _cleanName

name = self.fixWxPrefix(name, True)

File “/home/thomasc/Phoenix/etgtools/tweaker_tools.py”, line 89, in fixWxPrefix

self._getCoreTopLevelNames()

File “/home/thomasc/Phoenix/etgtools/tweaker_tools.py”, line 124, in _getCoreTopLevelNames

with open(filename, 'r') as f:

IOError: [Errno 2] No such file or directory: ‘wx/core.pi’

Command ‘/usr/bin/python etg/_xrc.py --sip --nodoc’ failed with exit code 1.

Finished command: etg (0.407s)

IOError: [Errno 2] No such file or directory: ‘wx/core.pi’

I copied wx/grid.pi to wx/core.pi and replace grid with core in the file since they seemed simple, and now it building.

Maybe a bug in master that core.pi is not created?

I copied wx/grid.pi to wx/core.pi and replace grid with core in the file since they seemed simple, and now it building.

The build stopped with the error below, and I guess that’s the things one will experience with master compiles. Well I can get started exploring now, so I will stick to the snapshots to test my application against Phoenix.

…/…/…/sip/cpp/sip_corewxBitmapButton.cpp: In member function ‘void sipwxBitmapButton::OnEnabled(bool)’:

…/…/…/sip/cpp/sip_corewxBitmapButton.cpp:444:9: error: ‘OnEnabled’ is not a member of ‘wxBitmapButton’

…/…/…/sip/cpp/sip_corewxBitmapButton.cpp: In member function ‘void sipwxBitmapButton::sipProtectVirt_OnEnabled(bool, bool)’:

…/…/…/sip/cpp/sip_corewxBitmapButton.cpp:740:22: error: ‘OnEnabled’ is not a member of ‘wxBitmapButton’

The attached patch fixes it.

fix_core_pi_error.patch (423 Bytes)

···

On Sunday, March 31, 2013 10:21:30 AM UTC+7, Thomas Christensen wrote:

IOError: [Errno 2] No such file or directory: ‘wx/core.pi’

I copied wx/grid.pi to wx/core.pi and replace grid with core in the file since they seemed simple, and now it building.

Maybe a bug in master that core.pi is not created?

Thomas Christensen wrote:

    Since you are using the code from github instead of the source snapshot
    then you need to also generate the wrapper code, as well as the xml
    that
    is used to generate that code. Try this:

    python build.py dox etg --nodoc sip build

$ DOXYGEN=/usr/bin/doxygen python build.py dox etg --nodoc sip build

This is doxygen 1.8.1.2 (build.py downloads 1.8.2 x86-64 and I am on x86.)

The *dox* command completed though, but *etg* failed:

I am very interested in this project and appreciate any help I can get
to get me started :slight_smile:

$ DOXYGEN=/usr/bin/doxygen python build.py dox etg --nodoc sip build
Build using: /usr/bin/python
2.7.3 (default, Sep 26 2012, 21:53:58)
[GCC 4.7.2]
Python's architecture is 32bit

Running command: dox
./regen.sh xml
warning: ignoring unsupported tag `AUTOLINK_SUPPORT =' at line 38, file
Doxyfile
warning: ignoring unsupported tag `HTML_EXTRA_STYLESHEET =' at line 340,
file Doxyfile
Finished command: dox (22.530s)
Running command: etg
/usr/bin/python etg/_xrc.py --sip --nodoc

_getCoreTopLevelNames
with open(filename, 'r') as f:
IOError: [Errno 2] No such file or directory: 'wx/core.pi'
Command '/usr/bin/python etg/_xrc.py --sip --nodoc' failed with exit code 1.
Finished command: etg (0.407s)

The .pi files are generated as part of the etg command, but there isn't a lot of dependency checking. You probably have some things that are partially generated from previous builds. You can force them to be rebuilt by running:

  rm wx/*.pi
  python build.py touch etg --nodoc

The build stopped with the error below, and I guess that's the things one will experience with master compiles. Well I can get started exploring now, so I will stick to the snapshots to test my application against Phoenix.

../../../sip/cpp/sip_corewxBitmapButton.cpp: In member function �void sipwxBitmapButton::OnEnabled(bool)�:
../../../sip/cpp/sip_corewxBitmapButton.cpp:444:9: error: �OnEnabled� is not a member of �wxBitmapButton�
../../../sip/cpp/sip_corewxBitmapButton.cpp: In member function �void sipwxBitmapButton::sipProtectVirt_OnEnabled(bool, bool)�:
../../../sip/cpp/sip_corewxBitmapButton.cpp:740:22: error: �OnEnabled� is not a member of �wxBitmapButton�

This was fixed last night, but it also requires that all the etg files be rerun to generate new .sip files without the OnEnabled. So doing the touch and rebuild as above will take care of this one too.

···

--
Robin Dunn
Software Craftsman

I still get the same result. It seems xrc.pi depends on core.pi which is not yet processed:

thomasc@incubator_62c5ede2:~/Phoenix$ rm wx/*.pi

thomasc@incubator_62c5ede2:~/Phoenix$ python build.py touch etg --nodoc

Build using: /usr/bin/python

2.7.3 (default, Sep 26 2012, 21:53:58)

[GCC 4.7.2]

Python’s architecture is 32bit

Running command: touch

touch etg/*.py

Finished command: touch (0.44s)

Running command: etg

/usr/bin/python etg/_adv.py --sip --nodoc

/usr/bin/python etg/_grid.py --sip --nodoc

/usr/bin/python etg/_xrc.py --sip --nodoc

Traceback (most recent call last):

File “etg/_xrc.py”, line 211, in

run()

File “etg/_xrc.py”, line 204, in run

tools.runGenerators(module)

File “/home/thomasc/Phoenix/etgtools/tweaker_tools.py”, line 541, in runGenerators

g.generate(module)

File “/home/thomasc/Phoenix/etgtools/sip_generator.py”, line 46, in generate

self.generateModule(module, stream)

File “/home/thomasc/Phoenix/etgtools/sip_generator.py”, line 137, in generateModule

self.generateModuleItems(module, stream)

File “/home/thomasc/Phoenix/etgtools/sip_generator.py”, line 180, in generateModuleItems

function(item, stream)

File “/home/thomasc/Phoenix/etgtools/sip_generator.py”, line 428, in generateClass

self.generateDocstring(klass, stream, indent2)

File “/home/thomasc/Phoenix/etgtools/sip_generator.py”, line 598, in generateDocstring

sigs = ctor.collectPySignatures()

File “/home/thomasc/Phoenix/etgtools/extractors.py”, line 506, in collectPySignatures

f.makePyArgsString()

File “/home/thomasc/Phoenix/etgtools/extractors.py”, line 485, in makePyArgsString

s += '=' + '|'.join([_cleanName(x) for x in default.split('|')])

File “/home/thomasc/Phoenix/etgtools/extractors.py”, line 431, in _cleanName

name = self.fixWxPrefix(name, True)

File “/home/thomasc/Phoenix/etgtools/tweaker_tools.py”, line 89, in fixWxPrefix

self._getCoreTopLevelNames()

File “/home/thomasc/Phoenix/etgtools/tweaker_tools.py”, line 124, in _getCoreTopLevelNames

with open(filename, 'r') as f:

IOError: [Errno 2] No such file or directory: ‘wx/core.pi’

Command ‘/usr/bin/python etg/_xrc.py --sip --nodoc’ failed with exit code 1.

Finished command: etg (1.542s)

···

On Monday, April 1, 2013 8:08:14 AM UTC+7, Robin Dunn wrote:

The .pi files are generated as part of the etg command, but there isn’t
a lot of dependency checking. You probably have some things that are
partially generated from previous builds. You can force them to be
rebuilt by running:

    rm wx/*.pi

    python build.py touch etg --nodoc

Thomas Christensen wrote:

    The .pi files are generated as part of the etg command, but there isn't
    a lot of dependency checking. You probably have some things that are
    partially generated from previous builds. You can force them to be
    rebuilt by running:

    rm wx/*.pi
    python build.py touch etg --nodoc

I still get the same result. It seems xrc.pi depends on core.pi which is
not yet processed:

Ok. I think it has always run those in alphabetical order for me, I wonder if glob() in your Python or platform behaves differently. Or maybe it is just a coincidence that I'm getting the file list in alpha order, or at least an order that has _core.py near the beginning of the list... on three platforms and all the buildslaves... Anyway, I'll go ahead and implement something like your patch.

···

On Monday, April 1, 2013 8:08:14 AM UTC+7, Robin Dunn wrote:

--
Robin Dunn
Software Craftsman