These are chat archives for inbilla/CMake

15th
Sep 2015
Packadal
@packadal
Sep 15 2015 12:21
I have a new commit that fixes another problem
should I put it in another branch and another pull request ?
it fixes RC compiler not being happy when there is a foo.cxx and a foo.rc
as they used to have the same output name (i.e. foo.obj)
I set the CompilerOutputExtension when using RC to '.res' so now it's foo.res
Packadal
@packadal
Sep 15 2015 12:45
now compilation of my project goes much further, but it fails when linking a large lib
It says it's because it can't spawn process cmake.exe for linking
but looking into it it seems CreateProcess on windows has a limit of 32K on the parameters
which I blow by being over 57K chars long
so my guess is FastBuild would need to do what is described here
to overcome the 32K limit
Packadal
@packadal
Sep 15 2015 12:53
I opened an issue on the Fastbuild github
fastbuild/fastbuild#57
Joshua Green
@inbilla
Sep 15 2015 12:58
The 32k thing is something I'm working on actually
Packadal
@packadal
Sep 15 2015 12:58
oh, nice !
Joshua Green
@inbilla
Sep 15 2015 12:58
Should be fixed with a patch I have in fastbuild
Was going to submit it as a pull, but haven't tested it yet
Need a test case
Packadal
@packadal
Sep 15 2015 12:59
well, if you push to your repo I can test it, since I'm running into it
Joshua Green
@inbilla
Sep 15 2015 13:00
So - the change is.. to output "LinkerType" as a variable in CMake.
Then make fastbuild use that linkerType internally to determine what kind of linker is being used.
because currently it sees the cmake exe and can't understand it
so it just does the minimum of work
but I'm telling it that it's MSVC now
which means a bunch of other features kick in
(including response files)
So, what version of fastbuild are you using now?
Packadal
@packadal
Sep 15 2015 13:02
since you're here do you want my other fix about the RC in a different pull request, or should I just add the commit ?
Joshua Green
@inbilla
Sep 15 2015 13:02
are you using my "all_pulls_merged" branch?
Packadal
@packadal
Sep 15 2015 13:02
yup
Joshua Green
@inbilla
Sep 15 2015 13:02
Probably another pull request is easiest
Packadal
@packadal
Sep 15 2015 13:02
OK, I'm on it
Joshua Green
@inbilla
Sep 15 2015 13:02
that way I can just send it straight in
easier to digest
Ok, if you grab my branch "working/all_latest_09_2015" instead
that should have the change in it
Joshua Green
@inbilla
Sep 15 2015 13:07
all_pulls_merged was based on an old version of Dev... but didn't want to rebase.. I need to work out how to make all_pulls_merged match this new branch somehow
Packadal
@packadal
Sep 15 2015 13:08
where should I put the function that resolves Fastbuild variables ?
Joshua Green
@inbilla
Sep 15 2015 13:08
probably beside the function that "Unescapes" them
next to "UnescapeFastbuildVariables"
Merged - thanks :)
If the new Fastbuild branch I gave you doesn't work, then I'll need to debug it a little more
Packadal
@packadal
Sep 15 2015 13:12
I'm cleaning up the pull request for the CustomCommand
and then I test this
Joshua Green
@inbilla
Sep 15 2015 13:12
kk
Packadal
@packadal
Sep 15 2015 13:14
ok, I pushed
Packadal
@packadal
Sep 15 2015 13:24
OK, so which branch of the CMake generator do I need for this ?
I just finished building Fastbuild with your branch
Oh, I just need to rebase on your latest
Packadal
@packadal
Sep 15 2015 13:39
OK, I just tried to build and it fails on the same link, but differently
here is the redacted error message
1> Exe: C:\build\foo.dll
1> CMake Error: The source directory "C:/build/FOO-msvc12-fbuild/@C:/Users/me/AppData/Local/Temp/.fbuild.tmp/0x9e83b269/core_1/args.rsp" does not exist.
Specify --help for usage, or press the help button on the CMake GUI.
1> Failed to build Exe (error 1) 'C:\build\foo.dll'
Joshua Green
@inbilla
Sep 15 2015 13:59
wierd...
that sounds like a FASTbuild bug then maybe?
I've not tried response files before...
looks like an incorrect path?
ahh... actually... it looks like an issue with our generator..
Joshua Green
@inbilla
Sep 15 2015 14:04
Fastbuild has tried to use a response file
which basically subs out all the arguments of the command and replaces it with "@responsefilepath.rsp"
and in this case, it thinks CMake is the linker
soo - either have to make CMake handle response files....
or do something else crazy....
strange though
I would have thought the Ninja and Makefile generator would handle these situations...
actually - I think in those cases, Cmake makes the response files itself....
maybe we need to make them ourselves...
:S bit more work to be done it seems....
Packadal
@packadal
Sep 15 2015 14:07
damn
Joshua Green
@inbilla
Sep 15 2015 14:09
Merged in your PR
Thanks heaps
Packadal
@packadal
Sep 15 2015 14:10
awesome !
you're welcome
Joshua Green
@inbilla
Sep 15 2015 14:10
Making response files seems pretty easy
looking at fastbuild code anyway...
Packadal
@packadal
Sep 15 2015 14:11
I'd really like to use fastbuild at work, so I'm just trying to get it faster
Joshua Green
@inbilla
Sep 15 2015 14:11
yeah, I'd like to use it at work too
Aight, I had better call it a night!
Gluck!
Packadal
@packadal
Sep 15 2015 14:12
oh btw, I looked at test 371 that was a new failure, it's because this test uses git as command
and there are a few generated files that need to be removed before running it again, or it fails
ok, bye
Joshua Green
@inbilla
Sep 15 2015 14:12
ha, interesting
aight, cya