Skip to content
This repository was archived by the owner on Aug 31, 2021. It is now read-only.

[[ Gypify ]] Gypify missing lcidlc project file#3017

Merged
livecodefraser merged 10 commits into
livecode:developfrom
montegoulding:feature/gypify_lcidl
Oct 8, 2015
Merged

[[ Gypify ]] Gypify missing lcidlc project file#3017
livecodefraser merged 10 commits into
livecode:developfrom
montegoulding:feature/gypify_lcidl

Conversation

@montegoulding

Copy link
Copy Markdown
Contributor

The lcidlc project files had been removed from the repo but not replaced
with gyp files.

The lcidlc project files had been removed from the repo but not replaced
with gyp files.
@runrevmark

Copy link
Copy Markdown
Contributor

@montegoulding: Thanks for this :)

@runrevmark

Copy link
Copy Markdown
Contributor

@livecode-vulcan review ok cfdf422

@peter-b

peter-b commented Oct 7, 2015

Copy link
Copy Markdown
Contributor

Sorry, this breaks the Linux build.

@livecode-vulcan review not ok cfdf422

@runrevmark

Copy link
Copy Markdown
Contributor

@montegoulding: As Peter points out - Linux isn't building here. Looking at the errors, I think its because the derived files aren't being placed / processed in the right place. As EncodedSupport.c etc. are not part of the source tree, they shouldn't be in the 'src' directly on processing. Perhaps @livecodefraser can advise?

@livecode-vulcan

Copy link
Copy Markdown
Contributor

💔 review by @peter-b not ok cfdf422

@livecodefraser

Copy link
Copy Markdown
Contributor

Hi Monte,

Intermediate sources should get placed in a directory inside <(SHARED_INTERMEDIATE_DIR), e.g. '<(SHARED_INTERMEDIATE_DIR)/LCIDLC/EncodedSupport.c'. You'll need to update both the outputs from the actions and the list of sources that includes these.

(It depends on the build system, but you should use <(SHARED_INTERMEDIATE_DIR) instead of <(INTERMEDIATE_DIR) as the non-shared directory is only guaranteed to be shared within a target.)

@montegoulding

Copy link
Copy Markdown
Contributor Author

Ok thanks

@livecodefraser

Copy link
Copy Markdown
Contributor

@livecode-vulcan review okay 7d19b96

Thanks!

@livecode-vulcan

Copy link
Copy Markdown
Contributor

💙 review by @livecodefraser ok 7d19b96

livecode-vulcan added a commit that referenced this pull request Oct 7, 2015
[[ Gypify ]] Gypify missing lcidlc project file

The lcidlc project files had been removed from the repo but not replaced
with gyp files.
@livecode-vulcan

Copy link
Copy Markdown
Contributor

😞 test failure 7d19b96

@montegoulding

Copy link
Copy Markdown
Contributor Author

Hmm... obviously this doesn't need to build for iOS or emscripten. Should I make it a dependency of the development build or do I need to do something funky with killing targets unless they are mac, linux or win?

`lcidlc` isn't needed for either of these operating systems.
Don't build lcidlc on emscripten or iOS platforms
Comment thread lcidlc/lcidlc.gyp Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd make sure the folder is lower-case - i.e. lcidlc - just to make sure things are consistent on case-sensitive filesystems.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed

@livecodefraser

Copy link
Copy Markdown
Contributor

@livecode-vulcan review okay 2f64e97

@livecode-vulcan

Copy link
Copy Markdown
Contributor

💙 review by @livecodefraser ok 2f64e97

livecode-vulcan added a commit that referenced this pull request Oct 8, 2015
[[ Gypify ]] Gypify missing lcidlc project file

The lcidlc project files had been removed from the repo but not replaced
with gyp files.
@livecode-vulcan

Copy link
Copy Markdown
Contributor

😞 test failure 2f64e97

@montegoulding

Copy link
Copy Markdown
Contributor Author

Hmm... Is there any way to get any more info about the failure? The failure link goes to a blank page.

@livecodefraser

Copy link
Copy Markdown
Contributor

It looks like the output EncodedJavaSupport.c and EncodedSupport.c have some some syntax that the MSVC compiler is objecting to. I'll have a look at what the encoding step is producing to see what is wrong.

@montegoulding

Copy link
Copy Markdown
Contributor Author

Ah, it may not have been built on anything but mac for a good long while. Perhaps before moving to perl for the encoding of those files...

@livecodefraser

Copy link
Copy Markdown
Contributor

const char *......\lcidlc\g_java_support_template [] =
{ ... };

I can see why MCVC is unhappy ;)

@livecodefraser

Copy link
Copy Markdown
Contributor

Ah, looks like one of those really annoying Gyp-isms... the third parameter to the script is being treated as a file path and is having the relative path prefixed to it. I can't remember what I did to fix this last time I encountered this so I need to do a bit of spelunking.

@montegoulding

Copy link
Copy Markdown
Contributor Author

ah... and only on win it seems

@montegoulding

Copy link
Copy Markdown
Contributor Author

would wrapping in double quotes help?

On Windows, Gyp is sometimes too eager in interpreting arguments
to scripts as paths rather than literals. As I've not been able
to track down the source of this issue, a work-around in the
affected script is required.
@livecodefraser

Copy link
Copy Markdown
Contributor

There is a bug in Gyp on Windows where it is sometimes too eager in relativising paths (and I've not yet been able to track down why :( ).

A tweak is also needed to make sure that LCIDLC is built as a console-subsystem app instead of a Win32 one, otherwise it fails to link because WinMain is missing.

The first has been worked around and the second fixed in the PR I've submitted against your branch.

Fixes for Windows-specific compilation issues
@montegoulding

Copy link
Copy Markdown
Contributor Author

Great, thanks.

@livecodefraser

Copy link
Copy Markdown
Contributor

Isn't Gyp fun?

@livecode-vulcan review okay 64ff620

@livecode-vulcan

Copy link
Copy Markdown
Contributor

💙 review by @livecodefraser ok 64ff620

@montegoulding

Copy link
Copy Markdown
Contributor Author

@livecodefraser It looked like fun for a little while ;-)

livecode-vulcan added a commit that referenced this pull request Oct 8, 2015
[[ Gypify ]] Gypify missing lcidlc project file

The lcidlc project files had been removed from the repo but not replaced
with gyp files.
@montegoulding

Copy link
Copy Markdown
Contributor Author

BTW is there any way contributors can test a branch against vulcan before submitting a PR?

@peter-b

peter-b commented Oct 8, 2015

Copy link
Copy Markdown
Contributor

@montegoulding Containerisation on Macs sucks, so unfortunately our mac builds boil down to "run this arbitrary code as a normal user account". At the moment we're only building reviewed code on our infrastructure. Sorry... 😞 You can test using Travis CI for now, but when I have time (hah!) I really need to set things up so that unprivileged users can request test builds on the "safe" targets.

@livecodefraser

Copy link
Copy Markdown
Contributor

Peter pre-empted my response there! Only thing I'll add is that I need to get around to writing up the instructions for setting up a Windows build environment (which is only useful if you have a copy of Windows available to you, but it's a start at least).

@peter-b

peter-b commented Oct 8, 2015

Copy link
Copy Markdown
Contributor

@livecodefraser Out of interest, are all the bits needed for a Windows build free downloads now, or do you need a MSDN subscription?

@livecodefraser

Copy link
Copy Markdown
Contributor

Saying that... if you're feeling brave and can get a copy of Visual Studio 2010 (we use the Professional edition but the free Express might work...), you can do as we do on Vulcan and build on Linux under Wine! Or even Wine for OSX, but that might be going a bit too far.

@livecode-vulcan

Copy link
Copy Markdown
Contributor

😎 test success 64ff620

@montegoulding

Copy link
Copy Markdown
Contributor Author

OK. No problem re-vulcan. I usually work on Mac so that's the one I don't really need. Having a way to work out that I need to jump on another machine to sort something out would be handy...

I've enabled travis now

Re windows... have things changed since gypification? Last time I built on Win I used VCE 2005.

@livecodefraser

Copy link
Copy Markdown
Contributor

Yes, we updated to VS2010 as part of Gypification. Partly because Gyp has better support for the VS2010 project file format and partly because VS2005 was showing its age. We haven't gone any newer yet as 2010 was the last version that supports running on XP.

livecodefraser added a commit that referenced this pull request Oct 8, 2015
[[ Gypify ]] Gypify missing lcidlc project file
@livecodefraser livecodefraser merged commit 0dd0bf6 into livecode:develop Oct 8, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants