[CMake] CMake still broken post-2.8.1

Eric Noulard eric.noulard at gmail.com
Tue Oct 25 12:40:10 EDT 2011


2011/10/25 Phil Smith <phil at voltage.com>:
> OK, but it should then reject the extra parameters, since it used to work.

Difficult to warn about a usage you did not even dream of ?
Now that we know I agree there should be a warning
(if not a clean failure with explanation).

>
> In any case, I've changed the toolchain file:
> ----------------------------------------
> # This is a CMake Toolchain file, required for cross-compiling using
> # the Dignus cross-compilers on Windows, compiling for z/OS.
>
> # Tell CMAKE the target system name
> SET(CMAKE_SYSTEM_NAME "IBM_ZOS")

Do you have a platform file for IBM_ZOS as well?

if not
what is the compiler ID found?
"The C compiler identification is <WhatsInHere>"

may be you could try for force compiler:
see
http://www.cmake.org/Wiki/CMake_Cross_Compiling#The_toolchain_file
and
cmake --help-module CMakeForceCompiler

[...]

> ----------------------------------------
> ...and the behavior persists:
> C:/Program Files/Regina/regina.exe  cc.rex;dcc.exe  CMakeCCompilerId.c

You did this in a clean build tree, right?


> So it's not clear that that's a solution. I can't wrap the regina call because what will I wrap it in? BAT is criminally busted -- it eats equals signs. So later calls with -fwhatever=value will be broken.

May be with a REXX script ?
Just a wild guess because I did only write 2 lines of REXX in my life
so I may be wrong about the REXX capability.

> If I comment out line 29 in CMakeDetermineCompilerId.cmake, it works with my old toolchain file, but fails later with the new one, because it appears to call "the compiler" without the "flags", and regina with no arguments produces Help and exits.

Line 29 for which CMake version?
Do you mean this line:
STRING(REGEX REPLACE " +" ";" CMAKE_${lang}_COMPILER_ID_ARG1
"${CMAKE_${lang}_COMPILER_ID_ARG1}")


>
> Why are the semicolons being inserted? If I wanted semicolons between the parameters, why wouldn't I just specify them?
>
> Brad, your comment in the thread says:
>>Teach compiler identification to support values such as
>>  export CC='gcc -g -O2'
>>by separating the arguments on spaces.
>
> Not sure what "on spaces" means, but again, it seems wrong to me that anything is messing with my option format.

I think it means replace spaces with ";" in order to get a proper list.

May be the compiler args handling is broken in the cross-compiling case?
Such kind of setup?

-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org


More information about the CMake mailing list