[[ Gypify ]] Gypify missing lcidlc project file#3017
Conversation
The lcidlc project files had been removed from the repo but not replaced with gyp files.
|
@montegoulding: Thanks for this :) |
|
@livecode-vulcan review ok cfdf422 |
|
Sorry, this breaks the Linux build. @livecode-vulcan review not ok cfdf422 |
|
@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? |
|
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.) |
|
Ok thanks |
|
@livecode-vulcan review okay 7d19b96 Thanks! |
|
💙 review by @livecodefraser ok 7d19b96 |
[[ Gypify ]] Gypify missing lcidlc project file The lcidlc project files had been removed from the repo but not replaced with gyp files.
|
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
There was a problem hiding this comment.
I'd make sure the folder is lower-case - i.e. lcidlc - just to make sure things are consistent on case-sensitive filesystems.
|
@livecode-vulcan review okay 2f64e97 |
|
💙 review by @livecodefraser ok 2f64e97 |
[[ Gypify ]] Gypify missing lcidlc project file The lcidlc project files had been removed from the repo but not replaced with gyp files.
|
Hmm... Is there any way to get any more info about the failure? The failure link goes to a blank page. |
|
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. |
|
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... |
|
const char *......\lcidlc\g_java_support_template [] = I can see why MCVC is unhappy ;) |
|
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. |
|
ah... and only on win it seems |
|
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.
|
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
|
Great, thanks. |
|
Isn't Gyp fun? @livecode-vulcan review okay 64ff620 |
|
💙 review by @livecodefraser ok 64ff620 |
|
@livecodefraser It looked like fun for a little while ;-) |
[[ Gypify ]] Gypify missing lcidlc project file The lcidlc project files had been removed from the repo but not replaced with gyp files.
|
BTW is there any way contributors can test a branch against vulcan before submitting a PR? |
|
@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. |
|
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). |
|
@livecodefraser Out of interest, are all the bits needed for a Windows build free downloads now, or do you need a MSDN subscription? |
|
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. |
|
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. |
|
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. |
[[ Gypify ]] Gypify missing lcidlc project file
The lcidlc project files had been removed from the repo but not replaced
with gyp files.