How were Xcode projects in trunk generated?

4 views
Skip to first unread message

Dimitri Schoolwerth

unread,
Aug 27, 2011, 6:10:18 PM8/27/11
to wx-dev
Hi (Stefan),

I'm wondering how the Xcode project files in trunk were created? The
UUIDs they contain look like they are generated by Xcode and not the
build/osx/makeprojects.applescript script. Currently when I regenerate
the Xcode projects they contain a lot of differences. While if I
compare locally regenerated project files from a somewhat older trunk
and current HEAD then I see the differences I would expect (only file
additions). Was there maybe some problem with the script?


Regards,
Dimitri

Stefan Csomor

unread,
Aug 28, 2011, 1:59:28 AM8/28/11
to wx-...@googlegroups.com
Hi

Am 28.08.11 00:10 schrieb "Dimitri Schoolwerth" unter
<dimitri.s...@gmail.com>:

I always use the makeprojects.applescript, and had no error messages, I
usually comment out the projects that I don't need at the moment, what is
involved in generating the UUIDs that could influence this ?

Best,

STefan

Stefan Csomor

unread,
Aug 28, 2011, 9:01:15 AM8/28/11
to wx-...@googlegroups.com
Hi Dimitri

what exactly do you diff ? there is only one revision in svn AFAFIK, eg
for Carbon it's 68023 ... if I now rebuild that, I only get a few added
files, but no big change

I'll commit a change to the script which I had to do to make sure SVN is
not mistaking the folders/projects, since now that the result .xcodeproj
is svn as well, we cannot just duplicate the ..._in.xcodeproj anymore

Best,

Stefan

Dimitri Schoolwerth

unread,
Aug 28, 2011, 9:15:05 AM8/28/11
to wx-...@googlegroups.com
Hello Stefan,


On Sun, Aug 28, 2011 at 9:59 AM, Stefan Csomor
<cso...@advancedconcepts.ch> wrote:

> I always use the makeprojects.applescript, and had no error messages, I
> usually comment out the projects that I don't need at the moment, what is
> involved in generating the UUIDs that could influence this ?

Hmm it doesn't sound promising if all you did was run the script, as
that is all that should be needed. The AppleScript calls a Python
script (fix_xcode_ids.py) to make the identifiers consistent between
runs, see http://trac.wxwidgets.org/changeset/65478 .
In case something goes wrong with it (at least AS is finding the
script I think, otherwise it shows an error), could you try the
following? Disable most inclusion of sources to speed up generation
(e.g. only include media files), as I'm sure you are aware. Then
comment out calling of the Python script (as well as again opening and
quitting Xcode afterwards), then rename the generated file. Run again
with the script+Xcode opening and quitting enabled, and look at the
difference between the files. There will be changes but with the
Python script the identifiers should look random, instead of Xcode's
more sequential identifying for similar types of files. Also, because
identifiers are sorted by Xcode in the pbxproj, there should be
structural changes.
I tried this under 10.6.8 with the default installed Python 2.6.1.


On Sun, Aug 28, 2011 at 5:01 PM, Stefan Csomor
<cso...@advancedconcepts.ch> wrote:

> what exactly do you diff ? there is only one revision in svn AFAFIK, eg
> for Carbon it's 68023 ... if I now rebuild that, I only get a few added
> files, but no big change

Surprising, I have seen Xcode using different identifiers on the same
machine for the same project, that was the whole reason for making
identifiers more consistent. I'll check again though.
I was comparing regenerated project files (specifically
wxcocoa.xcodeproj/project.pbxproj) of trunk with 68100 (as, I think,
68023 added xcconfig files to the project which changes the generated
project in a huge way, that is if making the identifiers consistent
works like it does here).


> I'll commit a change to the script which I had to do to make sure SVN is
> not mistaking the folders/projects, since now that the result .xcodeproj
> is svn as well, we cannot just duplicate the ..._in.xcodeproj anymore

Thanks, that saves some manual fiddling around.


Regards,
Dimitri

Stefan Csomor

unread,
Aug 28, 2011, 12:07:47 PM8/28/11
to wx-...@googlegroups.com
Hi

Am 28.08.11 15:15 schrieb "Dimitri Schoolwerth" unter
<dimitri.s...@gmail.com>:

>Hello Stefan,


>
>
>On Sun, Aug 28, 2011 at 9:59 AM, Stefan Csomor
><cso...@advancedconcepts.ch> wrote:
>
>> I always use the makeprojects.applescript, and had no error messages, I
>> usually comment out the projects that I don't need at the moment, what
>>is
>> involved in generating the UUIDs that could influence this ?
>
>Hmm it doesn't sound promising if all you did was run the script, as
>that is all that should be needed. The AppleScript calls a Python
>script (fix_xcode_ids.py) to make the identifiers consistent between
>runs, see http://trac.wxwidgets.org/changeset/65478 .
>In case something goes wrong with it (at least AS is finding the
>script I think, otherwise it shows an error), could you try the
>following? Disable most inclusion of sources to speed up generation
>(e.g. only include media files), as I'm sure you are aware. Then
>comment out calling of the Python script (as well as again opening and
>quitting Xcode afterwards), then rename the generated file. Run again
>with the script+Xcode opening and quitting enabled, and look at the
>difference between the files. There will be changes but with the
>Python script the identifiers should look random, instead of Xcode's
>more sequential identifying for similar types of files. Also, because
>identifiers are sorted by Xcode in the pbxproj, there should be
>structural changes.

when not using the script, it is using more sequential ordering and keeps
the files in the order given by files.bkl

40FE7284140A833F00B3D081 /* any.cpp in Sources */ = {isa = PBXBuildFile;
fileRef = 40FE7283140A833F00B3D081 /* any.cpp */; };
40FE7285140A833F00B3D081 /* any.cpp in Sources */ = {isa = PBXBuildFile;
fileRef = 40FE7283140A833F00B3D081 /* any.cpp */; };
40FE7287140A833F00B3D081 /* appbase.cpp in Sources */ = {isa =
PBXBuildFile; fileRef = 40FE7286140A833F00B3D081 /* appbase.cpp */; };
40FE7288140A833F00B3D081 /* appbase.cpp in Sources */ = {isa =
PBXBuildFile; fileRef = 40FE7286140A833F00B3D081 /* appbase.cpp */; };
40FE728A140A833F00B3D081 /* arcall.cpp in Sources */ = {isa =
PBXBuildFile; fileRef = 40FE7289140A833F00B3D081 /* arcall.cpp */; };
40FE728B140A833F00B3D081 /* arcall.cpp in Sources */ = {isa =
PBXBuildFile; fileRef = 40FE7289140A833F00B3D081 /* arcall.cpp */; };

and when running the script - the result is +- what is in trunk

now I'm sorry perhaps I misunderstood something, but when doing on a
python console a

eg it starts with:

006841D4ADA6384B9A8886CE /* slider.cpp in Sources */ = {isa =
PBXBuildFile; fileRef = 75278C04709D3482A2660DFC /* slider.cpp */; };


from uuid import uuid3, UUID
uuid3(UUID("349f853c-91f8-4eba-b9b9-5e9f882e693c"),
"slider.cpp").hex[:24].upper()

I get '75278C04709D3482A2660DFC'

for "slider.cpp in Sources" I get

006841D4ADA6384B9A8886CE


both values seem reproducible, I get the same values on two different
machines with different systems and CPUs

so I have no idea, why your project differs, what does your line for
slider.cpp look like, is it also the first in its group ?


>I tried this under 10.6.8 with the default installed Python 2.6.1.
>
>
>On Sun, Aug 28, 2011 at 5:01 PM, Stefan Csomor
><cso...@advancedconcepts.ch> wrote:
>
>> what exactly do you diff ? there is only one revision in svn AFAFIK, eg
>> for Carbon it's 68023 ... if I now rebuild that, I only get a few added
>> files, but no big change
>
>Surprising, I have seen Xcode using different identifiers on the same
>machine for the same project, that was the whole reason for making
>identifiers more consistent. I'll check again though.
>I was comparing regenerated project files (specifically
>wxcocoa.xcodeproj/project.pbxproj) of trunk with 68100 (as, I think,
>68023 added xcconfig files to the project which changes the generated
>project in a huge way, that is if making the identifiers consistent
>works like it does here).

wxcocoa.xcodeproj/project.pbxproj only has a r68020 in trunk doesn't it ?
the change in the config files for wxcocoa was in r68019


Best,

Stefan

Dimitri Schoolwerth

unread,
Aug 28, 2011, 1:02:31 PM8/28/11
to wx-...@googlegroups.com
Hi,


On Sun, Aug 28, 2011 at 8:07 PM, Stefan Csomor
<cso...@advancedconcepts.ch> wrote:

>>I was comparing regenerated project files (specifically
>>wxcocoa.xcodeproj/project.pbxproj) of trunk with 68100 (as, I think,
>>68023 added xcconfig files to the project which changes the generated
>>project in a huge way, that is if making the identifiers consistent
>>works like it does here).
>
> wxcocoa.xcodeproj/project.pbxproj only has a r68020 in trunk doesn't it ?
> the change in the config files for wxcocoa was in r68019

Sorry for wasting your time Stefan, all seems fine on this end. I
think I was bitten by what you fixed today regarding the *.xcodeproj
copying conflicting with .svn directories. I was comparing with
something that was not a clean version of what was in trunk but rather
some random version I generated before the additional xcconfig files
and probably without the Python script (and I should have used "svn
st" to see a status of S[witched] (which doesn't get updated), not my
naive script that only shows M[odified] files).
Now I'm seeing the same as you: just the minimal amount of changes I
would expect.


Regards,
Dimitri

Reply all
Reply to author
Forward
0 new messages