OK, but it should then reject the extra parameters, since it used to work.

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")

# Specify the cross-compilers
SET(CMAKE_C_COMPILER   "regina")
SET(CMAKE_C_FLAGS "cc.rex dcc.exe")

SET(CMAKE_CXX_COMPILER "regina")
SET(CMAKE_CXX_FLAGS "cc.rex dcc.exe")

SET(CMAKE_C_CREATE_STATIC_LIBRARY "DAR -rv <TARGET> <OBJECTS>")

SET(CMAKE_CXX_LINK_EXECUTABLE "plink.exe 
\"-S$ENV{DIGNUS_PROGRAM}/objs_norent/&M\" <OBJECTS> -o <TARGET>")
SET(CMAKE_C_LINK_EXECUTABLE   "plink.exe 
\"-S$ENV{DIGNUS_PROGRAM}/objs_norent/&M\" <OBJECTS> -o <TARGET>")
----------------------------------------
...and the behavior persists:
C:/Program Files/Regina/regina.exe  cc.rex;dcc.exe  CMakeCCompilerId.c

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.

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.

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.

...phsiii
-----Original Message-----
From: Brad King [mailto:brad.k...@kitware.com] 
Sent: Tuesday, October 25, 2011 9:14 AM
To: Phil Smith
Cc: Eric Noulard; cmake@cmake.org; Bill Hoffman; David Cole
Subject: Re: [CMake] CMake still broken post-2.8.1

On 10/25/2011 5:00 AM, Eric Noulard wrote:
> 2011/10/25 Phil Smith<p...@voltage.com>:
>> # Specify the cross-compilers
>> SET(CMAKE_C_COMPILER   "regina.exe" "cc.rex dcc.exe")
>> SET(CMAKE_CXX_COMPILER "regina.exe" "cc.rex dcxx.exe")
>
> I think CMAKE_[C|CXX]_COMPILER vars are supposed to contain
> a command not command + list of args.
> If I'm wrong please someone (Alex, Bill,...) just tell me.

Correct.  Those variables always hold only the compiler name.
When they are built from environment variables like CC and CXX
we split the arguments out into a separate variable.  I think
the change in behavior came from this thread's change:

  http://thread.gmane.org/gmane.comp.programming.tools.cmake.user/27857
  http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fd38eda9

Read my first message in that thread for an explanation.

-Brad
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to