[CMake] Specifying an alternate location for cmake Modules directory

2013-11-13 Thread Paul Smith
I need to maintain my own copy of the latest cmake, and for multiple
different target systems (GNU/Linux, MacOS, Windows, Solaris...)

I have a shared location where all tools like this go, so that
regardless of the system architecture you can access this one location.
Obviously inside that location are architecture-specific areas for
binaries, etc.

There is also a common area for files that can be shared, to reduce disk
usage, copying time, etc.

Since all of the cmake installation with the exception of the binaries
is identical between the different architectures, I want to share all of
the installation (for example the Modules directory, etc.)  I can't use
symlinks.

So what I'd like is a structure something like this:

  .../common/cmake/Modules/...

  .../linux/bin/cmake
  .../darwin/bin/cmake
  .../windows/bin/cmake.exe
  .../sunos/bin/cmake

I can use a wrapper around cmake to set environment variables or pass in
command line flags to the REAL cmake, if necessary.

Is there any way to convince cmake to look in a different place for
Modules etc.?

--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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


[CMake] CTest working directory and CMAKE_CFD_INTDIR

2013-11-13 Thread Kurt Ehlert
I am trying to run a test in a specific working directory. The command I
used was:

add_test(NAME MyTest
WORKING_DIRECTORY ${MyDir}/Test/${CMAKE_CFG_INTDIR}
  COMMAND MyTest
)

When I tried running CTest within Xcode, the test did not pass, and instead
CTest gave me an error (BAD_COMMAND). I then looked at CTestTestfile.cmake
for a clue, and I found

SET_TESTS_PROPERTIES(MyTest PROPERTIES  WORKING_DIRECTORY
"/MyDir/Test/\$(CONFIGURATION)\$(EFFECTIVE_PLATFORM_NAME)")

The problem seems to be that CMAKE_CFG_INTDIR doesn't work correctly when
used within add_test (and specifically for the WORKING_DIRECTORY).

I changed the above line by manually inserting "Debug", so it read

SET_TESTS_PROPERTIES(MyTest PROPERTIES  WORKING_DIRECTORY
"/MyDir/Test/Debug")

and the test passed. Am I using the WORKING_DIRECTORY option correctly?
Should it be working with CMAKE_CFG_INTDIR?

Thanks.
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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

Re: [CMake] INSTALL CODE Error Results and Termination

2013-11-13 Thread David Hauck
Hi Jean-christophe,
 
On chris.filli...@kitware.com], Jean-Christophe Fillion-Robin wrote:
> Hi,
> 
> You also need to add the "if" statement into the "CODE" parameter, for
> example something like this ...
> 
> install(CODE "If (NOT \${_res} EQUAL "0")
>   message( FATAL_ERROR \"out: \${_out}, err: \${_err}, res:
> \${_res}\")
> 
>   endif()
> ")

Perfect, thx (just fixed up the double-quote escaping a bit and things worked 
fine).

> To keep things simpler, you could also look at "INSTALL(SCRIPT ...)"
> it would allow you to avoid escaping. You would just need to configure
> the script using "configure_file".

Hmmm, OK, I'll look into reviewing this to see how things differ.

Thanks,
-David
 
> Hth
> Jc
> 
> On Wed, Nov 13, 2013 at 2:57 PM, David Hauck 
> wrote:
>   On Wednesday, November 13, 2013 11:42 AM, David Hauck wrote:> Hi
> Jean-christophe,  >   > On chris.filli...@kitware.com], 
> Jean-Christophe
> Fillion-Robin wrote:
> 
>   >> Hi David,>>  >> You need to escape the "$" sign otherwise the
> "_err", "_out" and "_res" >> variables are resolved to an empty string.
>   >>  >> Here is an example of what you could do: >>
> -8<---8<-->>
> cmake_minimum_required(VERSION 2.8.9) >>  >> install(CODE
> "execute_process (>>   COMMAND ${CMAKE_COMMAND} -E echo \"Hello\"
>   >>   OUTPUT_VARIABLE _out   >>   ERROR_VARIABLE _err>>  
> RESULT_VARIABLE _res  >>   )" >>) >> install(CODE 
> "message(
> STATUS \"out: \${_out}, err: \${_err}, res:   >> \${_res}...\")")
> -8<---8<-->
> 
>   > Aha! This was probably obvious to you and Kornel, but it "escaped"
> me ;).
>   > Brilliant, this is working fine now.
> 
>   One last item here: I'm now able to see the resulting variable values
> in the message command output, but I'd now like to enclose this in an 'if'
> command. Something like:
> 
>   install(CODE "execute_process (
> COMMAND ${CMAKE_COMMAND} -E echo \"Hello\"
> OUTPUT_VARIABLE _out
> ERROR_VARIABLE _err
> RESULT_VARIABLE _res
> )"
>  )
> 
>   If (NOT \${_res} EQUAL "0") # escaping here has not effect one way or
> the other...
>  install(CODE "message( FATAL_ERROR \"out: \${_out}, err:
> \${_err}, res: \${_res}\")")
>   endif ()
> 
>   However, the resulting cmake_install.cmake has the following (meaning
> the fatal error message will always be executed regardless of the
> value of '_res"):
> 
>   IF(NOT CMAKE_INSTALL_COMPONENT OR
> "${CMAKE_INSTALL_COMPONENT}"
> STREQUAL "Unspecified")
> 
> MESSAGE( FATAL_ERROR "out: ${_out}, err: ${_err}, res: ${_res}...")
> 
>   ENDIF(NOT CMAKE_INSTALL_COMPONENT OR
> "${CMAKE_INSTALL_COMPONENT}" STREQUAL "Unspecified")
> 
>   Is there a way to do this?
> 
>   -David
> 
>   > Thanks to both of you for your help,
>   > -David
>   >
>   >> Hth  >> Jc   >>  >> On Wed, Nov 13, 2013 at 2:29 PM, David Hauck
>>> wrote:   >>  Hi Kornel,  >>
> 
>   >>  On Wednesday, November 13, 2013 11:08 AM, cmake-
> boun...@cmake.org >> wrote:   > Am Mittwoch, 13. November 2013 um
> 18:41:03, schrieb David
> 
>   >> Hauck>>> Hi Kornel,
> On Wednesday,
>   >> November 13, 2013 10:26 AM, cmake-   > boun...@cmake.org
> wrote:  >>> Am
>   >> Mittwoch, 13. November 2013 um 18:12:26, schrieb David Hauck
 
>   >>    Hello, 
> I've been using
>   >> several "install (CODE "EXECUTE_PROCESS ...")"   
> constructs >>> in
>   >> my top-level CMakeLists.txt file. However, I've been unable
> to   >>>
>   >> capture/operate on any exit status of the embedded command.
 
>   >> Unfortunately, documentation/searches haven't turned up any useful  
> >>>   >> pointers. The closest I've come is a pointer in the following
> thread:   >>   http://www.cmake.org/pipermail/cmake/2011-
> July/045475.html  >> However,  I've not been able to
> sufficiently read between the >> lines to get  this
> working.   Does anyone have any   >> thoughts on how to
> get something like the following working: >>  
> install (CODE "EXECUTE_PROCESS (    COMMAND ant   >> ...  
> WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
> 
>   >> ERROR_VARIABLE _err  >>> >>> Didn't you mean 'RESULT_VARIABLE'
> here? >>  >>  >> No, I really do mean ERROR_VARIABLE (unless,
> of course, this   >> variable >> does > not include the
> non-zero exit status of the   >> EXECUTE_PROCESS command?).   >   >
> If you run 'cmake --help-command  >> execute_process', you see: ... If  
>  > RESULT_VARIABLE is given the   >> variable will be set to contain the 

Re: [CMake] INSTALL CODE Error Results and Termination

2013-11-13 Thread Jean-Christophe Fillion-Robin
Hi,

You also need to add the "if" statement into the "CODE" parameter, for
example something like this ...

install(CODE "If (NOT \${_res} EQUAL "0")
  message( FATAL_ERROR \"out: \${_out}, err: \${_err}, res: \${_res}\")
  endif()
")

To keep things simpler, you could also look at "INSTALL(SCRIPT ...)" it
would allow you to avoid escaping. You would just need to configure the
script using "configure_file".

Hth
Jc


On Wed, Nov 13, 2013 at 2:57 PM, David Hauck  wrote:

> On Wednesday, November 13, 2013 11:42 AM, David Hauck wrote:
> > Hi Jean-christophe,
> >
> > On chris.filli...@kitware.com], Jean-Christophe Fillion-Robin wrote:
> >> Hi David,
> >>
> >> You need to escape the "$" sign otherwise the "_err", "_out" and "_res"
> >> variables are resolved to an empty string.
> >>
> >> Here is an example of what you could do:
> >> -8<---8<--
> >> cmake_minimum_required(VERSION 2.8.9)
> >>
> >> install(CODE "execute_process (
> >>   COMMAND ${CMAKE_COMMAND} -E echo \"Hello\"
> >>   OUTPUT_VARIABLE _out
> >>   ERROR_VARIABLE _err
> >>   RESULT_VARIABLE _res
> >>   )"
> >>)
> >> install(CODE "message( STATUS \"out: \${_out}, err: \${_err}, res:
> >> \${_res}...\")") -8<---8<--
> >
> > Aha! This was probably obvious to you and Kornel, but it "escaped" me ;).
> > Brilliant, this is working fine now.
>
> One last item here: I'm now able to see the resulting variable values in
> the message command output, but I'd now like to enclose this in an 'if'
> command. Something like:
>
> install(CODE "execute_process (
>   COMMAND ${CMAKE_COMMAND} -E echo \"Hello\"
>   OUTPUT_VARIABLE _out
>   ERROR_VARIABLE _err
>   RESULT_VARIABLE _res
>   )"
>)
> If (NOT \${_res} EQUAL "0") # escaping here has not effect one way or the
> other...
>install(CODE "message( FATAL_ERROR \"out: \${_out}, err: \${_err}, res:
> \${_res}\")")
> endif ()
>
> However, the resulting cmake_install.cmake has the following (meaning the
> fatal error message will always be executed regardless of the value of
> '_res"):
>
> IF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL
> "Unspecified")
>   MESSAGE( FATAL_ERROR "out: ${_out}, err: ${_err}, res: ${_res}...")
> ENDIF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL
> "Unspecified")
>
> Is there a way to do this?
>
> -David
>
> > Thanks to both of you for your help,
> > -David
> >
> >> Hth
> >> Jc
> >>
> >> On Wed, Nov 13, 2013 at 2:29 PM, David Hauck 
> >> wrote:
> >>  Hi Kornel,
> >>
> >>  On Wednesday, November 13, 2013 11:08 AM, cmake- boun...@cmake.org
> >> wrote:   > Am Mittwoch, 13. November 2013 um 18:41:03, schrieb David
> >> Hauck>>> Hi Kornel,   >>
>  >> On Wednesday,
> >> November 13, 2013 10:26 AM, cmake-   > boun...@cmake.org wrote:
>  >>> Am
> >> Mittwoch, 13. November 2013 um 18:12:26, schrieb David Hauck >>>
> >>    Hello,  I've been
> using
> >> several "install (CODE "EXECUTE_PROCESS ...")"    constructs
>   >>> in
> >> my top-level CMakeLists.txt file. However, I've been unable to   >>>
> >> capture/operate on any exit status of the embedded command.  >>>
> >> Unfortunately, documentation/searches haven't turned up any useful   >>>
> >> pointers. The closest I've come is a pointer in the following thread:
> >>   http://www.cmake.org/pipermail/cmake/2011- July/045475.html
> >> However,  I've not been able to sufficiently read between the
> >> lines to get  this working.   Does anyone
> have any
> >> thoughts on how to get something like the following working:
> >>   install (CODE "EXECUTE_PROCESS (      COMMAND
> ant
> >> ...   WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java   
> >> ERROR_VARIABLE _err  >>> >>> Didn't you mean 'RESULT_VARIABLE' here?
> >>  >>  >> No, I really do mean ERROR_VARIABLE (unless, of course,
> this
> >> variable >> does > not include the non-zero exit status of
> the
> >> EXECUTE_PROCESS command?).   >   > If you run 'cmake --help-command
> >> execute_process', you see: ... If> RESULT_VARIABLE is given the
> >> variable will be set to contain the  > result of running the processes.
> >>  This will be an integer return code > from the last child or a
> string
> >> describing an error condition. ... So,   > if this is not "0", then
> you
> >> have an error condition.
> >>
> >>  Yes, I see this. I also assumed that the ERROR_VARIABLE would be
> >> returning non-zero text as well in this case. I will change to using
> >> RESULT_VARIABLE, but, in both cases, it seems that I'm referencing
> >> the variable incorrectly (either syntactically or in the incorrect
> >> context) since this/these is/are always .
> >>
> >>  >> BTW, I'm still curious about the (dual 'code') construct
> generally.
> >>  >> Specifi

Re: [CMake] INSTALL CODE Error Results and Termination

2013-11-13 Thread David Hauck
On Wednesday, November 13, 2013 11:42 AM, David Hauck wrote:
> Hi Jean-christophe,
> 
> On chris.filli...@kitware.com], Jean-Christophe Fillion-Robin wrote:
>> Hi David,
>> 
>> You need to escape the "$" sign otherwise the "_err", "_out" and "_res"
>> variables are resolved to an empty string.
>> 
>> Here is an example of what you could do:
>> -8<---8<--
>> cmake_minimum_required(VERSION 2.8.9)
>> 
>> install(CODE "execute_process (
>>   COMMAND ${CMAKE_COMMAND} -E echo \"Hello\"
>>   OUTPUT_VARIABLE _out
>>   ERROR_VARIABLE _err
>>   RESULT_VARIABLE _res
>>   )"
>>)
>> install(CODE "message( STATUS \"out: \${_out}, err: \${_err}, res:
>> \${_res}...\")") -8<---8<--
> 
> Aha! This was probably obvious to you and Kornel, but it "escaped" me ;).
> Brilliant, this is working fine now.

One last item here: I'm now able to see the resulting variable values in the 
message command output, but I'd now like to enclose this in an 'if' command. 
Something like:

install(CODE "execute_process (
  COMMAND ${CMAKE_COMMAND} -E echo \"Hello\"
  OUTPUT_VARIABLE _out
  ERROR_VARIABLE _err
  RESULT_VARIABLE _res
  )"
   )
If (NOT \${_res} EQUAL "0") # escaping here has not effect one way or the 
other...
   install(CODE "message( FATAL_ERROR \"out: \${_out}, err: \${_err}, res: 
\${_res}\")")
endif ()
 
However, the resulting cmake_install.cmake has the following (meaning the fatal 
error message will always be executed regardless of the value of '_res"):

IF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL 
"Unspecified")
  MESSAGE( FATAL_ERROR "out: ${_out}, err: ${_err}, res: ${_res}...")
ENDIF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL 
"Unspecified")

Is there a way to do this?

-David

> Thanks to both of you for your help,
> -David
> 
>> Hth
>> Jc
>> 
>> On Wed, Nov 13, 2013 at 2:29 PM, David Hauck 
>> wrote:
>>  Hi Kornel,
>> 
>>  On Wednesday, November 13, 2013 11:08 AM, cmake- boun...@cmake.org
>> wrote:   > Am Mittwoch, 13. November 2013 um 18:41:03, schrieb David
>> Hauck>>> Hi Kornel,   >>  >> On 
>> Wednesday,
>> November 13, 2013 10:26 AM, cmake-   > boun...@cmake.org wrote:  >>> Am
>> Mittwoch, 13. November 2013 um 18:12:26, schrieb David Hauck >>>
>>    Hello,  I've been using
>> several "install (CODE "EXECUTE_PROCESS ...")"    constructs 
>> >>> in
>> my top-level CMakeLists.txt file. However, I've been unable to   >>>
>> capture/operate on any exit status of the embedded command.  >>>
>> Unfortunately, documentation/searches haven't turned up any useful   >>>
>> pointers. The closest I've come is a pointer in the following thread:
>>   http://www.cmake.org/pipermail/cmake/2011- July/045475.html
>> However,  I've not been able to sufficiently read between the
>> lines to get  this working.   Does anyone have 
>> any
>> thoughts on how to get something like the following working:
>>   install (CODE "EXECUTE_PROCESS (      COMMAND ant
>> ...   WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java   
>> ERROR_VARIABLE _err  >>> >>> Didn't you mean 'RESULT_VARIABLE' here?
>>  >>  >> No, I really do mean ERROR_VARIABLE (unless, of course, this
>> variable >> does > not include the non-zero exit status of the
>> EXECUTE_PROCESS command?).   >   > If you run 'cmake --help-command
>> execute_process', you see: ... If> RESULT_VARIABLE is given the
>> variable will be set to contain the  > result of running the processes.
>>  This will be an integer return code > from the last child or a 
>> string
>> describing an error condition. ... So,   > if this is not "0", then you
>> have an error condition.
>> 
>>  Yes, I see this. I also assumed that the ERROR_VARIABLE would be
>> returning non-zero text as well in this case. I will change to using
>> RESULT_VARIABLE, but, in both cases, it seems that I'm referencing
>> the variable incorrectly (either syntactically or in the incorrect
>> context) since this/these is/are always .
>> 
>>  >> BTW, I'm still curious about the (dual 'code') construct generally.
>>  >> Specifically, if I do the following I never see the fatal error  
>> >>
>> message (so I'm wondering if there's still something wrong regarding
>>  >> the scoping of the message command)? >>  >>install 
>> (CODE
>> "EXECUTE_PROCESS (   >>   COMMAND ant ...>> WORKING_DIRECTORY
>> ${PROJECT_SOURCE_DIR}/java   >>   ERROR_VARIABLE _err>>) 
>> >>
>> MESSAGE( FATAL_ERROR \"err: ${_err}\")   >   > Never did this. When 
>> do
>> you want to see the message?
>> 
>>  Ideally, I want to be able to test for the result of this variable
>> (either ERROR_VARIABLE or RESULT_VARIABLE) after the execu

Re: [CMake] INSTALL CODE Error Results and Termination

2013-11-13 Thread David Hauck
Hi Jean-christophe,
 
On chris.filli...@kitware.com], Jean-Christophe Fillion-Robin wrote:
> Hi David,
> 
> You need to escape the "$" sign otherwise the "_err", "_out" and "_res"
> variables are resolved to an empty string.
> 
> Here is an example of what you could do:
> -8<---8<--
> cmake_minimum_required(VERSION 2.8.9)
> 
> install(CODE "execute_process (
>   COMMAND ${CMAKE_COMMAND} -E echo \"Hello\"
>   OUTPUT_VARIABLE _out
>   ERROR_VARIABLE _err
>   RESULT_VARIABLE _res
>   )"
>)
> install(CODE "message( STATUS \"out: \${_out}, err: \${_err}, res:
> \${_res}...\")") -8<---8<--

Aha! This was probably obvious to you and Kornel, but it "escaped" me ;). 
Brilliant, this is working fine now.

Thanks to both of you for your help,
-David
 
> Hth
> Jc
> 
> On Wed, Nov 13, 2013 at 2:29 PM, David Hauck 
> wrote:
>   Hi Kornel,
> 
>   On Wednesday, November 13, 2013 11:08 AM, cmake- boun...@cmake.org
> wrote:> Am Mittwoch, 13. November 2013 um 18:41:03, schrieb David
> Hauck >>> Hi Kornel,   >>  >> On 
> Wednesday,
> November 13, 2013 10:26 AM, cmake-> boun...@cmake.org wrote:  >>> Am
> Mittwoch, 13. November 2013 um 18:12:26, schrieb David Hauck  >>>
> Hello,  I've been using 
> several
> "install (CODE "EXECUTE_PROCESS ...")" constructs >>> in 
> my
> top-level CMakeLists.txt file. However, I've been unable to   >>>
> capture/operate on any exit status of the embedded command.   >>>
> Unfortunately, documentation/searches haven't turned up any useful>>>
> pointers. The closest I've come is a pointer in the following thread:
>    http://www.cmake.org/pipermail/cmake/2011- July/045475.html
> However,   I've not been able to sufficiently read between the lines
> to get this working.   Does anyone have any 
> thoughts on
> how to get something like the  following working: 
>    
> install (CODE "EXECUTE_PROCESS (     COMMAND ant ...  
>   
> WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java     ERROR_VARIABLE
> _err  >>> >>> Didn't you mean 'RESULT_VARIABLE' here? >>  >> No, I
> really do mean ERROR_VARIABLE (unless, of course, this variable   >> does
>   > not include the non-zero exit status of the EXECUTE_PROCESS
> command?).>   > If you run 'cmake --help-command execute_process', you
> see: ... If   > RESULT_VARIABLE is given the variable will be set to
> contain the   > result of running the processes.  This will be an integer
> return code   > from the last child or a string describing an error
> condition. ... So,> if this is not "0", then you have an error
> condition.
> 
>   Yes, I see this. I also assumed that the ERROR_VARIABLE would be
> returning non-zero text as well in this case. I will change to using
> RESULT_VARIABLE, but, in both cases, it seems that I'm referencing the
> variable incorrectly (either syntactically or in the incorrect
> context) since this/these is/are always .
> 
>   >> BTW, I'm still curious about the (dual 'code') construct generally.
>   >> Specifically, if I do the following I never see the fatal error  
> >>
> message (so I'm wondering if there's still something wrong regarding  >>
> the scoping of the message command)?  >>  >>install (CODE
> "EXECUTE_PROCESS (>>   COMMAND ant ...>>   
> WORKING_DIRECTORY
> ${PROJECT_SOURCE_DIR}/java>>   ERROR_VARIABLE _err>>) 
> >>   
> MESSAGE( FATAL_ERROR \"err: ${_err}\")>   > Never did this. When 
> do you
> want to see the message?
> 
>   Ideally, I want to be able to test for the result of this variable
> (either ERROR_VARIABLE or RESULT_VARIABLE) after the execute_process
> command completes (during 'make install') to determine its result and
> to terminate (with error message) when the command fails.
> 
>   Thanks,
>   -David
> 
>   > As I understand your code, only in call of cmake, e.g. at
> configuration time.
>   >
>   >   Kornel
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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


Re: [CMake] INSTALL CODE Error Results and Termination

2013-11-13 Thread Jean-Christophe Fillion-Robin
Hi David,

You need to escape the "$" sign otherwise the "_err", "_out" and "_res"
variables are resolved to an empty string.

Here is an example of what you could do:

-8<---8<--
cmake_minimum_required(VERSION 2.8.9)

install(CODE "execute_process (
  COMMAND ${CMAKE_COMMAND} -E echo \"Hello\"
  OUTPUT_VARIABLE _out
  ERROR_VARIABLE _err
  RESULT_VARIABLE _res
  )"
   )
install(CODE "message( STATUS \"out: \${_out}, err: \${_err}, res:
\${_res}...\")")
-8<---8<--

Hth
Jc


On Wed, Nov 13, 2013 at 2:29 PM, David Hauck  wrote:

> Hi Kornel,
>
> On Wednesday, November 13, 2013 11:08 AM, cmake-boun...@cmake.org wrote:
> > Am Mittwoch, 13. November 2013 um 18:41:03, schrieb David Hauck
> > 
> >> Hi Kornel,
> >>
> >> On Wednesday, November 13, 2013 10:26 AM, cmake-
> > boun...@cmake.org wrote:
> >>> Am Mittwoch, 13. November 2013 um 18:12:26, schrieb David Hauck
> >>> 
>  Hello,
> 
>  I've been using several "install (CODE "EXECUTE_PROCESS ...")"
>  constructs
> >>> in my top-level CMakeLists.txt file. However, I've been unable to
> >>> capture/operate on any exit status of the embedded command.
> >>> Unfortunately, documentation/searches haven't turned up any useful
> >>> pointers. The closest I've come is a pointer in the following thread:
>  http://www.cmake.org/pipermail/cmake/2011-July/045475.html However,
>  I've not been able to sufficiently read between the lines to get
>  this working.
> 
>  Does anyone have any thoughts on how to get something like the
>  following working:
> 
> install (CODE "EXECUTE_PROCESS (
>    COMMAND ant ...
>    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
>    ERROR_VARIABLE _err
> >>>
> >>> Didn't you mean 'RESULT_VARIABLE' here?
> >>
> >> No, I really do mean ERROR_VARIABLE (unless, of course, this variable
> >> does
> > not include the non-zero exit status of the EXECUTE_PROCESS command?).
> >
> > If you run 'cmake --help-command execute_process', you see: ... If
> > RESULT_VARIABLE is given the variable will be set to contain the
> > result of running the processes.  This will be an integer return code
> > from the last child or a string describing an error condition. ... So,
> > if this is not "0", then you have an error condition.
>
> Yes, I see this. I also assumed that the ERROR_VARIABLE would be returning
> non-zero text as well in this case. I will change to using RESULT_VARIABLE,
> but, in both cases, it seems that I'm referencing the variable incorrectly
> (either syntactically or in the incorrect context) since this/these is/are
> always .
>
> >> BTW, I'm still curious about the (dual 'code') construct generally.
> >> Specifically, if I do the following I never see the fatal error
> >> message (so I'm wondering if there's still something wrong regarding
> >> the scoping of the message command)?
> >>
> >>install (CODE "EXECUTE_PROCESS (
> >>   COMMAND ant ...
> >>   WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
> >>   ERROR_VARIABLE _err
> >>)
> >>MESSAGE( FATAL_ERROR \"err: ${_err}\")
> >
> > Never did this. When do you want to see the message?
>
> Ideally, I want to be able to test for the result of this variable (either
> ERROR_VARIABLE or RESULT_VARIABLE) after the execute_process command
> completes (during 'make install') to determine its result and to terminate
> (with error message) when the command fails.
>
> Thanks,
> -David
>
> > As I understand your code, only in call of cmake, e.g. at configuration
> time.
> >
> >   Kornel
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
>



-- 
+1 919 869 8849
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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

Re: [CMake] INSTALL CODE Error Results and Termination

2013-11-13 Thread David Hauck
Hi Kornel,

On Wednesday, November 13, 2013 11:08 AM, cmake-boun...@cmake.org wrote:
> Am Mittwoch, 13. November 2013 um 18:41:03, schrieb David Hauck 
> 
>> Hi Kornel,
>> 
>> On Wednesday, November 13, 2013 10:26 AM, cmake-
> boun...@cmake.org wrote:
>>> Am Mittwoch, 13. November 2013 um 18:12:26, schrieb David Hauck 
>>> 
 Hello,
 
 I've been using several "install (CODE "EXECUTE_PROCESS ...")"
 constructs
>>> in my top-level CMakeLists.txt file. However, I've been unable to 
>>> capture/operate on any exit status of the embedded command.
>>> Unfortunately, documentation/searches haven't turned up any useful 
>>> pointers. The closest I've come is a pointer in the following thread:
 http://www.cmake.org/pipermail/cmake/2011-July/045475.html However, 
 I've not been able to sufficiently read between the lines to get 
 this working.
 
 Does anyone have any thoughts on how to get something like the 
 following working:
 
install (CODE "EXECUTE_PROCESS (
   COMMAND ant ...
   WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
   ERROR_VARIABLE _err
>>> 
>>> Didn't you mean 'RESULT_VARIABLE' here?
>> 
>> No, I really do mean ERROR_VARIABLE (unless, of course, this variable 
>> does
> not include the non-zero exit status of the EXECUTE_PROCESS command?).
> 
> If you run 'cmake --help-command execute_process', you see: ... If 
> RESULT_VARIABLE is given the variable will be set to contain the 
> result of running the processes.  This will be an integer return code 
> from the last child or a string describing an error condition. ... So, 
> if this is not "0", then you have an error condition.

Yes, I see this. I also assumed that the ERROR_VARIABLE would be returning 
non-zero text as well in this case. I will change to using RESULT_VARIABLE, 
but, in both cases, it seems that I'm referencing the variable incorrectly 
(either syntactically or in the incorrect context) since this/these is/are 
always .
 
>> BTW, I'm still curious about the (dual 'code') construct generally.
>> Specifically, if I do the following I never see the fatal error 
>> message (so I'm wondering if there's still something wrong regarding 
>> the scoping of the message command)?
>> 
>>install (CODE "EXECUTE_PROCESS (
>>   COMMAND ant ...
>>   WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
>>   ERROR_VARIABLE _err
>>)
>>MESSAGE( FATAL_ERROR \"err: ${_err}\")
> 
> Never did this. When do you want to see the message?

Ideally, I want to be able to test for the result of this variable (either 
ERROR_VARIABLE or RESULT_VARIABLE) after the execute_process command completes 
(during 'make install') to determine its result and to terminate (with error 
message) when the command fails.

Thanks,
-David

> As I understand your code, only in call of cmake, e.g. at configuration time.
> 
>   Kornel
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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


Re: [CMake] INSTALL CODE Error Results and Termination

2013-11-13 Thread David Hauck
Hi Jean-christophe,
 
On chris.filli...@kitware.com], Jean-Christophe Fillion-Robin wrote:
> Hi David,
> 
> You could look at the generated file named "cmake_install.cmake" to
> have a better idea of what could be wrong ...

Well, this just has the following:

IF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL 
"Unspecified")
  EXECUTE_PROCESS (
  COMMAND ant ...
  WORKING_DIRECTORY /home/david/src/java
  #OUTPUT_VARIABLE _out
  ERROR_VARIABLE _err
  #RESULT_VARIABLE _res
   )
   MESSAGE( FATAL_ERROR "err: ")
ENDIF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL 
"Unspecified")

IF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL 
"Unspecified")
  MESSAGE("out: , err: , res: ...")
ENDIF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL 
"Unspecified")

So it looks like the variable(s) is(are) being expanded (in the first case) 
prior to running the 'ant' command. Any ideas why this might be?

Thanks,
-David

PS: I'm surprised that this isn't something that many, many CMake authors 
need/require (i.e., the ability to terminate or otherwise operate on the 
results of an "install code..." sequence). Especially given the availability of 
the error, output, and result variable arguments to the execute_process 
command. What is the proper syntax/pattern for this?

> As a side note, there is also an issue with command like
> "install(CODE|SCRIPT ..." there are always executed first in a given
> directory. See [1] (Note that I couldn't find a issue in the tracker
> referencing that problem ... will create one if no body find it)
> 
> 
> Hth
> Jc
> 
> [1]
> https://github.com/Slicer/Slicer/blob/95f48d89d0806cd30b0cf58b20b77901
> 63 cec1c8/CMake/SlicerCPack.cmake#L81-86
> 
> On Wed, Nov 13, 2013 at 1:41 PM, David Hauck 
> wrote:
>   Hi Kornel,
> 
>   On Wednesday, November 13, 2013 10:26 AM, cmake- boun...@cmake.org
> wrote:> Am Mittwoch, 13. November 2013 um 18:12:26, schrieb David
> Hauck >>> Hello,   >>  >> I've 
> been using
> several "install (CODE "EXECUTE_PROCESS ...")">> constructs   > in my
> top-level CMakeLists.txt file. However, I've been unable to   >
> capture/operate on any exit status of the embedded command.   >
> Unfortunately, documentation/searches haven't turned up any useful>
> pointers. The closest I've come is a pointer in the following thread:
>   >> http://www.cmake.org/pipermail/cmake/2011-July/045475.html However,
>   >> I've not been able to sufficiently read between the lines to get
> this  >> working. >>  >> Does anyone have any thoughts on how to get
> something like the>> following working:   >>  >>install (CODE
> "EXECUTE_PROCESS (>>   COMMAND ant ...>>   
> WORKING_DIRECTORY
> ${PROJECT_SOURCE_DIR}/java>>   ERROR_VARIABLE _err>   > Didn't
> you mean 'RESULT_VARIABLE' here?
> 
>   No, I really do mean ERROR_VARIABLE (unless, of course, this variable
> does not include the non-zero exit status of the EXECUTE_PROCESS
> command?).
> 
>   BTW, I'm still curious about the (dual 'code') construct generally.
> Specifically, if I do the following I never see the fatal error
> message (so I'm wondering if there's still something wrong regarding
> the scoping of the message command)?
> 
>  install (CODE "EXECUTE_PROCESS (
> COMMAND ant ...
> WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
> ERROR_VARIABLE _err
> 
>  )
>  MESSAGE( FATAL_ERROR \"err: ${_err}\")
> 
>   BTW, the following doesn't work either (each of the variables is empty):
> 
>  install (CODE "EXECUTE_PROCESS (
> COMMAND ant ...
> WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
> 
> OUTPUT_VARIABLE _out
> ERROR_VARIABLE _err
> RESULT_VARIABLE _res
>  )
>  Install (CODE "MESSAGE( STATUS \"out: ${_out}, err: ${_err},
> res: ${_res}...\")")
> 
>   -David
> 
>   >>)
>   >>If (${_err})
>   >>   MESSAGE( FATAL_ERROR \"err: ${_err}\")
>   >>endif ()")
>   >> Thanks!
>   >> -David
>   >>
>   >   Kornel
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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


Re: [CMake] INSTALL CODE Error Results and Termination

2013-11-13 Thread Kornel Benko
Am Mittwoch, 13. November 2013 um 18:41:03, schrieb David Hauck 

> Hi Kornel,
>  
> On Wednesday, November 13, 2013 10:26 AM, cmake-boun...@cmake.org wrote:
> > Am Mittwoch, 13. November 2013 um 18:12:26, schrieb David Hauck 
> > 
> >> Hello,
> >> 
> >> I've been using several "install (CODE "EXECUTE_PROCESS ...")"
> >> constructs
> > in my top-level CMakeLists.txt file. However, I've been unable to 
> > capture/operate on any exit status of the embedded command.
> > Unfortunately, documentation/searches haven't turned up any useful 
> > pointers. The closest I've come is a pointer in the following thread:
> >> http://www.cmake.org/pipermail/cmake/2011-July/045475.html However, 
> >> I've not been able to sufficiently read between the lines to get this 
> >> working.
> >> 
> >> Does anyone have any thoughts on how to get something like the 
> >> following working:
> >> 
> >>install (CODE "EXECUTE_PROCESS (
> >>   COMMAND ant ...
> >>   WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
> >>   ERROR_VARIABLE _err
> > 
> > Didn't you mean 'RESULT_VARIABLE' here?
> 
> No, I really do mean ERROR_VARIABLE (unless, of course, this variable does 
> not include the non-zero exit status of the EXECUTE_PROCESS command?).

If you run 'cmake --help-command execute_process', you see:
...
If RESULT_VARIABLE is given the variable will be set to contain the
result of running the processes.  This will be an integer return code
from the last child or a string describing an error condition.
...
So, if this is not "0", then you have an error condition.

> BTW, I'm still curious about the (dual 'code') construct generally.
> Specifically, if I do the following I never see the fatal error message
> (so I'm wondering if there's still something wrong regarding the scoping of 
> the message command)?
>  
>install (CODE "EXECUTE_PROCESS (
>   COMMAND ant ...
>   WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
>   ERROR_VARIABLE _err
>)
>MESSAGE( FATAL_ERROR \"err: ${_err}\")

Never did this. When do you want to see the message?
As I understand your code, only in call of cmake, e.g. at configuration time.

Kornel

signature.asc
Description: This is a digitally signed message part.
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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

Re: [CMake] INSTALL CODE Error Results and Termination

2013-11-13 Thread Jean-Christophe Fillion-Robin
Hi David,


You could look at the generated file named "cmake_install.cmake" to have a
better idea of what could be wrong ...

As a side note, there is also an issue with command like
"install(CODE|SCRIPT ..." there are always executed first in a given
directory. See [1] (Note that I couldn't find a issue in the tracker
referencing that problem ... will create one if no body find it)

Hth
Jc

[1]
https://github.com/Slicer/Slicer/blob/95f48d89d0806cd30b0cf58b20b7790163cec1c8/CMake/SlicerCPack.cmake#L81-86


On Wed, Nov 13, 2013 at 1:41 PM, David Hauck  wrote:

> Hi Kornel,
>
> On Wednesday, November 13, 2013 10:26 AM, cmake-boun...@cmake.org wrote:
> > Am Mittwoch, 13. November 2013 um 18:12:26, schrieb David Hauck
> > 
> >> Hello,
> >>
> >> I've been using several "install (CODE "EXECUTE_PROCESS ...")"
> >> constructs
> > in my top-level CMakeLists.txt file. However, I've been unable to
> > capture/operate on any exit status of the embedded command.
> > Unfortunately, documentation/searches haven't turned up any useful
> > pointers. The closest I've come is a pointer in the following thread:
> >> http://www.cmake.org/pipermail/cmake/2011-July/045475.html However,
> >> I've not been able to sufficiently read between the lines to get this
> >> working.
> >>
> >> Does anyone have any thoughts on how to get something like the
> >> following working:
> >>
> >>install (CODE "EXECUTE_PROCESS (
> >>   COMMAND ant ...
> >>   WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
> >>   ERROR_VARIABLE _err
> >
> > Didn't you mean 'RESULT_VARIABLE' here?
>
> No, I really do mean ERROR_VARIABLE (unless, of course, this variable does
> not include the non-zero exit status of the EXECUTE_PROCESS command?).
>
> BTW, I'm still curious about the (dual 'code') construct generally.
> Specifically, if I do the following I never see the fatal error message (so
> I'm wondering if there's still something wrong regarding the scoping of the
> message command)?
>
>install (CODE "EXECUTE_PROCESS (
>   COMMAND ant ...
>   WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
>   ERROR_VARIABLE _err
>)
>MESSAGE( FATAL_ERROR \"err: ${_err}\")
>
> BTW, the following doesn't work either (each of the variables is empty):
>
>install (CODE "EXECUTE_PROCESS (
>   COMMAND ant ...
>   WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
>   OUTPUT_VARIABLE _out
>   ERROR_VARIABLE _err
>   RESULT_VARIABLE _res
>)
>Install (CODE "MESSAGE( STATUS \"out: ${_out}, err: ${_err}, res:
> ${_res}...\")")
>
> -David
>
> >>)
> >>If (${_err})
> >>   MESSAGE( FATAL_ERROR \"err: ${_err}\")
> >>endif ()")
> >> Thanks!
> >> -David
> >>
> >   Kornel
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
>



-- 
+1 919 869 8849
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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

Re: [CMake] INSTALL CODE Error Results and Termination

2013-11-13 Thread David Hauck
Hi Kornel,
 
On Wednesday, November 13, 2013 10:26 AM, cmake-boun...@cmake.org wrote:
> Am Mittwoch, 13. November 2013 um 18:12:26, schrieb David Hauck 
> 
>> Hello,
>> 
>> I've been using several "install (CODE "EXECUTE_PROCESS ...")"
>> constructs
> in my top-level CMakeLists.txt file. However, I've been unable to 
> capture/operate on any exit status of the embedded command.
> Unfortunately, documentation/searches haven't turned up any useful 
> pointers. The closest I've come is a pointer in the following thread:
>> http://www.cmake.org/pipermail/cmake/2011-July/045475.html However, 
>> I've not been able to sufficiently read between the lines to get this 
>> working.
>> 
>> Does anyone have any thoughts on how to get something like the 
>> following working:
>> 
>>install (CODE "EXECUTE_PROCESS (
>>   COMMAND ant ...
>>   WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
>>   ERROR_VARIABLE _err
> 
> Didn't you mean 'RESULT_VARIABLE' here?

No, I really do mean ERROR_VARIABLE (unless, of course, this variable does not 
include the non-zero exit status of the EXECUTE_PROCESS command?).

BTW, I'm still curious about the (dual 'code') construct generally. 
Specifically, if I do the following I never see the fatal error message (so I'm 
wondering if there's still something wrong regarding the scoping of the message 
command)?
 
   install (CODE "EXECUTE_PROCESS (
  COMMAND ant ...
  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
  ERROR_VARIABLE _err
   )
   MESSAGE( FATAL_ERROR \"err: ${_err}\")

BTW, the following doesn't work either (each of the variables is empty):

   install (CODE "EXECUTE_PROCESS (
  COMMAND ant ...
  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
  OUTPUT_VARIABLE _out
  ERROR_VARIABLE _err
  RESULT_VARIABLE _res
   )
   Install (CODE "MESSAGE( STATUS \"out: ${_out}, err: ${_err}, res: 
${_res}...\")")

-David

>>)
>>If (${_err})
>>   MESSAGE( FATAL_ERROR \"err: ${_err}\")
>>endif ()")
>> Thanks!
>> -David
>> 
>   Kornel
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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


Re: [CMake] INSTALL CODE Error Results and Termination

2013-11-13 Thread Kornel Benko
Am Mittwoch, 13. November 2013 um 18:12:26, schrieb David Hauck 

> Hello,
> 
> I've been using several "install (CODE "EXECUTE_PROCESS ...")" constructs in 
> my top-level CMakeLists.txt file. However, I've been unable to 
> capture/operate on any exit status of the embedded command. Unfortunately, 
> documentation/searches haven't turned up any useful pointers. The closest 
> I've come is a pointer in the following thread:
> http://www.cmake.org/pipermail/cmake/2011-July/045475.html 
> However, I've not been able to sufficiently read between the lines to get 
> this working.
> 
> Does anyone have any thoughts on how to get something like the following 
> working:
> 
>install (CODE "EXECUTE_PROCESS (
>   COMMAND ant ...
>   WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
>   ERROR_VARIABLE _err

Didn't you mean 'RESULT_VARIABLE' here?

>)
>If (${_err})
>   MESSAGE( FATAL_ERROR \"err: ${_err}\")
>endif ()")
> 
> Thanks!
> -David
> 
Kornel


signature.asc
Description: This is a digitally signed message part.
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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

[CMake] INSTALL CODE Error Results and Termination

2013-11-13 Thread David Hauck
Hello,

I've been using several "install (CODE "EXECUTE_PROCESS ...")" constructs in my 
top-level CMakeLists.txt file. However, I've been unable to capture/operate on 
any exit status of the embedded command. Unfortunately, documentation/searches 
haven't turned up any useful pointers. The closest I've come is a pointer in 
the following thread:
http://www.cmake.org/pipermail/cmake/2011-July/045475.html 
However, I've not been able to sufficiently read between the lines to get this 
working.

Does anyone have any thoughts on how to get something like the following 
working:

   install (CODE "EXECUTE_PROCESS (
  COMMAND ant ...
  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/java
  ERROR_VARIABLE _err
   )
   If (${_err})
  MESSAGE( FATAL_ERROR \"err: ${_err}\")
   endif ()")

Thanks!
-David


--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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


Re: [CMake] Specifying whether a library is C or C++

2013-11-13 Thread Nils Gladitz

On 13.11.2013 18:15, Aggelos Kolaitis wrote:

# I don't add 'C' as the language, because I get build errors with g++
project(PROJECT_NAME)


Maybe
project(PROJECT_NAME C)
and a conditional
enable_language(CXX)
would work?

Nils
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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


[CMake] Specifying whether a library is C or C++

2013-11-13 Thread Aggelos Kolaitis
Hey CMake list,

I have kind of a problem with CMake (but I guess it's the strange way
I'm using it :p).

I use CMake to have a simple and consistent build system for my
cross-platform library. My library is written in C, but it also has an
optional wrapper C++ interface.

During the generation of makefiles, the user can choose whether or not
to build the C++ interface, and so I choose the appropriate language
for my library. The thing is, CMake will always fail if there is no
g++, even if the user disables the C++ interface. The code in
CMakeLists.txt looks like this(see the full file in context at [1])

[code]

# I don't add 'C' as the language, because I get build errors with g++
project(PROJECT_NAME)

# Option to build c++ interface
option(BUILD_CXX "Build the C++ interface" ON)

# Default c files
set(SOURCES list_of_c_sources.c)

# Add c++ interface if needed
if (BUILD_CXX)
set(CXX_SOURCES list_of_cxx_sources.cxx)
set_source_files_properties( CXX_SOURCES PROPERTIES LANGUAGE CXX )
set(SOURCES ${SOURCES} ${CXX_SOURCES})
endif(BUILD_CXX)

[/code]

When I try to generate makefiles with: `cmake -DBUILD_CXX=OFF .`,
the generation fails if it can't find a c++ compiler, even though it
isn't needed

I hope the *problem* is clear here, but I'm willing to provide more
information if needed. Thanks in advance.

-- Aggelos Kolaitis

[1]: 
https://bitbucket.org/sdlu/sdlu/src/79338d0f19b24c5997b87b5c318faf76627be50a/CMakeLists.txt?at=master
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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


Re: [CMake] Unicode path wrecks havoc with VS2013 generator

2013-11-13 Thread Clinton Stimpson
On Wednesday, November 13, 2013 03:12:13 PM Nagy-Egri Máté Ferenc wrote:
> I have changed the encoding as you suggested and the project compiled fine:
> 
> 
> 1>-- Build started: Project: cmTryCompileExec747919577, Configuration:
> Debug Win32 --
 1>  Microsoft (R) C/C++ Optimizing Compiler Version
> 18.00.21005.1 for x86 1>  Copyright (C) Microsoft Corporation.  All rights
> reserved.
> 1>  
> 1>  cl /c /Zi /W3 /WX- /Od /Ob0 /Oy- /D WIN32 /D _WINDOWS /D _DEBUG /D
> "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise
> /Zc:wchar_t /Zc:forScope /Fo"cmTryCompileExec747919577.dir\Debug\\"
> /Fd"cmTryCompileExec747919577.dir\Debug\vc120.pdb" /Gd /TC /analyze-
> /errorReport:prompt testCCompiler.c
 1>
> 1>  testCCompiler.c
> 1>  cmTryCompileExec747919577.vcxproj ->
> C:\Users\MátéFerenc\SkyDrive\Develop\Active\GridRipper\VS2013\CMakeFiles\CM
> akeTmp\Debug\cmTryCompileExec747919577.exe
 == Build: 1 succeeded, 0
> failed, 0 up-to-date, 0 skipped == 
> 
> 
> If you could issue a patch (2.8.12.2 if I’m not mistaken) that would correct
> this bug, that would simply rock.

Here is the fix for a future release.
http://cmake.org/gitweb?p=cmake.git;a=commit;h=efe3a5dd

Clint
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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

Re: [CMake] Unicode path wrecks havoc with VS2013 generator

2013-11-13 Thread Clinton Stimpson
On Wednesday, November 13, 2013 03:12:13 PM Nagy-Egri Máté Ferenc wrote:
> I have changed the encoding as you suggested and the project compiled fine:
> 
> 
> 1>-- Build started: Project: cmTryCompileExec747919577, Configuration:
> Debug Win32 --
 1>  Microsoft (R) C/C++ Optimizing Compiler Version
> 18.00.21005.1 for x86 1>  Copyright (C) Microsoft Corporation.  All rights
> reserved.
> 1>  
> 1>  cl /c /Zi /W3 /WX- /Od /Ob0 /Oy- /D WIN32 /D _WINDOWS /D _DEBUG /D
> "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise
> /Zc:wchar_t /Zc:forScope /Fo"cmTryCompileExec747919577.dir\Debug\\"
> /Fd"cmTryCompileExec747919577.dir\Debug\vc120.pdb" /Gd /TC /analyze-
> /errorReport:prompt testCCompiler.c
 1>
> 1>  testCCompiler.c
> 1>  cmTryCompileExec747919577.vcxproj ->
> C:\Users\MátéFerenc\SkyDrive\Develop\Active\GridRipper\VS2013\CMakeFiles\CM
> akeTmp\Debug\cmTryCompileExec747919577.exe
 == Build: 1 succeeded, 0
> failed, 0 up-to-date, 0 skipped == 
> 
> 
> If you could issue a patch (2.8.12.2 if I’m not mistaken) that would correct
> this bug, that would simply rock.

A 2.8.12.2 will only be created if there was a serious regression in 2.8.12 or 
2.8.12.1.

Your problem is not a regression.

 
> 
> Cheers,
> 
> Máté
> 
> 
> ps.: Anyone has an idea what causes this issue with UTF-8?

CMake wrote the project file with the Windows-1252 encoding, so it isn't really 
a utf-8 file.

> As far as I saw
> from the sources, the project files are concatenated from instances of
> std:: string. Wouldn’t std:: wstring solve the problem?

No.  Both std::string and std::wstring have no concept of a built in encoding.
One could choose to use std::string to store either utf-8 or Windows-1252 or 
any other encoding.
One could choose to use std::wstring to store UTF-16, UTF-32 or any other 
encoding.

Clint

> Or using the ICU
> library perhaps? (I’m fine as long as the patch fixes my problems, the
> question is just out of curiosity)
 
> 
> 
> 
> Feladó: clin...@elemtech.com
> Elküldve: ‎szerda‎, ‎2013‎. ‎november‎ ‎13‎. ‎15‎:‎23
> Címzett: cmake@cmake.org
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> I have tried to open the solution by the IDE itself, but that fails to load
> the solution also. It report the same error while trying to load the
> projects inside.
 
> 
> 
> 
> Shall I rebuild CMake with the mentioned patch to make it work, or can I
> hope of a patch that solves this problem?
 
> You can manually edit the visual studio project file to replace "utf-8" with
> "Windows-1252" (or whatever is appropriate for your language) and load the
> project in visual studio.
 
> 
> 
> 
> If that works, can you please modify cmVisualStudio10TargetGenerator.cxx to
> change from "utf-8" to "Windows-1252" to see if you can build the rest of
> your project.
 
> Let us know so we can include a fix.
> 
> 
> 
> 
> Clint
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Feladó: clin...@elemtech.com
> Elküldve: ‎szombat‎, ‎2013‎. ‎november‎ ‎9‎. ‎7‎:‎14
> Címzett: cmake@cmake.org
> 
> 
> 
> 
> 
> 
> 
> 
> 
> - Original Message -
> 
> > On 11/8/2013 4:48 AM, Nagy-Egri Máté Ferenc wrote:
> > 
> > > Hi!
> > >
> > >
> > >
> > > I have the following issue, which I do not know whether it is an issue
> > > of CMake or Visual Studio. When I try to generate a Visual Studio
> > > project under a path that contains unicode characters, VS fails to
> > > compile the simple test file and thus CMake terminates project
> > > generation. Visual Studio does have some issues with projects under
> > > unicode paths, but generally things work. (For eg. the C++AMP call tree
> > > generator breaks, therefore no C++AMP project can be built in such
> > > paths) I develop all my applications in my Skydrive folder which is
> > > under the Users folder, and since my name holds unicode characters, I
> > > have no control over mw home folder under Win 8 if I have a Live-ID
> > > user
> > > in the OS. This is what happens:
> > 
> > Clearly you need to change your name.  :)
> > 
> > Can you create a simple project from the IDE in that directory and get
> > it to work?
> > 
> > If you run CMake with --debug-trycompile, can you load the solution in
> > the CMakeTmp directory from the IDE?
> > 
> 
> 
> 
> 
> This problem can also be reproduced with English as the current language.
> Just pick a character between 128 and 256 to include in the name of the
> build directory.
 For example, buildñ, and run cmake in there pointing to
> any source tree. 
> 
> 
> For me, the Visual Studio 9 2008 generator works fine and the project file
> reports an encoding of Windows-1252.
 It fails with the the Visual Studio
> 10 generator where the project file reports a utf-8 encoding, but it really
> isn't utf-8. So I get errors like this:
>  C:\...\cmake\buildñ\CMakeFiles\CMakeTmp\cmTryCompileExec926
> 91608.vcxproj(56,110):
>  error MSB4025: The project file could not be loaded.  Invalid character in
> the given encoding.  Line 56, position 110.
> 
> 
> 
> Modifying cmVisual

[CMake] Fixup Bundle Problem when using multiple executables

2013-11-13 Thread Fabian Saccilotto

Dear CMake Users,

we are using CMake as build system for an application which is made from 
several subapplications for ease of development (Windows 7 + Visual 
Studio 2010).


In order to make the setup of a project for the developer easier, we use 
the fixup_bundle macro from BundleUtilities via the INSTALL project.
It searches the libraries needed of an executable in given locations and 
copies them to the output folder.
If there are several executables to fixup in the same folder, errors 
occur while resolving the dependencies.


With CMake we are able to build a global meta-solution with all the 
subprojects in it, what allows the developer to have all the sources in 
one solution and run standalone subprojects and tests from there.
All Output is directed to the same location which is under the root 
application directory appended with the configuration name (Debug, 
Release etc).

(Note: The subprojects are also used in other applications)

Meta-Solution:
- LibraryA
- LibraryA_Standalone (Standalone and Library differ in symbols 
which are exported and target to build)

- LibraryA_Test
- LibraryB
- LibraryB_Standalone
- LibraryB_Test
- Full_Application (Depends on LibraryA and LibraryB)
- INSTALL (calls LibraryA's and LibraryB's install_cmake)

The information to fix up the executables resides in the subprojects 
which install the fixup script with the according executable and 
directories.


THE PROBLEM:
When building the install project for a subproject, the fixup_bundle 
macro searches for all other executables in the current directory and 
tries to fix them. Because not all paths are given with each subproject 
not all libraries can be resolved. see Line 420 of BundleUtilities.cmake


# But do fixups on all executables in the bundle:
#
get_bundle_all_executables("${bundle}" exes)

I temporarily fixed this using only the given executable here and 
ignoring others.


I would be interested in the following things:
- why are other executables search for?
- is there a better way to do what I want?

Thank you for your replies

Kind regards

Fabian Saccilotto
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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


Re: [CMake] ExternalData on unmounted Windows shares?

2013-11-13 Thread Brad King
On 11/13/2013 03:59 AM, Magnus Therning wrote:
> On Tue, Nov 12, 2013 at 5:09 PM, Brad King  wrote:
>> Add to ExternalData_URL_TEMPLATES the entry
>>
>>  file:share.host/foo/bar/%(algo)/%(hash)
> 
> That still fails on the real path I have to use in the project.  Are
> there any known issues with  hidden shares (name ending in $), or with
> paths containing spaces?
> 
> The path that fails contains both :(

I just tried network paths containing both spaces and a $ at the end
or in the middle.  It works just fine for me in either variable.

> - It's not possible to set only ExternalData_OBJECT_STORES, one has to
> set ExternalData_URL_TEMPLATES too.

Back when this module was part of another project and not ported to
CMake upstream we did not have ExternalData_OBJECT_STORES and always
used a store in the build tree.  That is why ExternalData_URL_TEMPLATES
is required to be set.  When the ExternalData_OBJECT_STORES capability
was created no one thought to lift the ExternalData_URL_TEMPLATES
requirement because the projects using the module all set it anyway.

It is easy enough to lift that restriction:

 ExternalData: Allow local stores without any URL templates
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8eb20eea

> - I'd like to not have to map the drive (other users of the project
> would then have to free up a specific drive letter) and
> ExternalData_OBJECT_STORES don't seem to handle paths of the form
> "//share.host/foo/bar".

As I report above they work just fine for me.  Please provide
a sample CMakeLists.txt file and instructions for setting up a
network share that demonstrates the failure.  Include the error
messages you expect us to see when reproducing it.

What CMake build system generator (-G) are you using?

-Brad
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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


Re: [CMake] Unicode path wrecks havoc with VS2013 generator

2013-11-13 Thread Nagy-Egri Máté Ferenc
I have changed the encoding as you suggested and the project compiled fine:


1>-- Build started: Project: cmTryCompileExec747919577, Configuration: 
Debug Win32 --
1>  Microsoft (R) C/C++ Optimizing Compiler Version 18.00.21005.1 for x86
1>  Copyright (C) Microsoft Corporation.  All rights reserved.
1>  
1>  cl /c /Zi /W3 /WX- /Od /Ob0 /Oy- /D WIN32 /D _WINDOWS /D _DEBUG /D 
"CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t 
/Zc:forScope /Fo"cmTryCompileExec747919577.dir\Debug\\" 
/Fd"cmTryCompileExec747919577.dir\Debug\vc120.pdb" /Gd /TC /analyze- 
/errorReport:prompt testCCompiler.c
1>  
1>  testCCompiler.c
1>  cmTryCompileExec747919577.vcxproj -> 
C:\Users\MátéFerenc\SkyDrive\Develop\Active\GridRipper\VS2013\CMakeFiles\CMakeTmp\Debug\cmTryCompileExec747919577.exe
== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==



If you could issue a patch (2.8.12.2 if I’m not mistaken) that would correct 
this bug, that would simply rock.


Cheers,

Máté


ps.: Anyone has an idea what causes this issue with UTF-8? As far as I saw from 
the sources, the project files are concatenated from instances of std:: string. 
Wouldn’t std:: wstring solve the problem? Or using the ICU library perhaps? 
(I’m fine as long as the patch fixes my problems, the question is just out of 
curiosity)




Feladó: clin...@elemtech.com
Elküldve: ‎szerda‎, ‎2013‎. ‎november‎ ‎13‎. ‎15‎:‎23
Címzett: cmake@cmake.org











I have tried to open the solution by the IDE itself, but that fails to load the 
solution also. It report the same error while trying to load the projects 
inside.




Shall I rebuild CMake with the mentioned patch to make it work, or can I hope 
of a patch that solves this problem?

You can manually edit the visual studio project file to replace "utf-8" with 
"Windows-1252" (or whatever is appropriate for your language) and load the 
project in visual studio.




If that works, can you please modify cmVisualStudio10TargetGenerator.cxx to 
change from "utf-8" to "Windows-1252" to see if you can build the rest of your 
project.

Let us know so we can include a fix.




Clint










Feladó: clin...@elemtech.com
Elküldve: ‎szombat‎, ‎2013‎. ‎november‎ ‎9‎. ‎7‎:‎14
Címzett: cmake@cmake.org









- Original Message -
> On 11/8/2013 4:48 AM, Nagy-Egri Máté Ferenc wrote:
> > Hi!
> >
> > I have the following issue, which I do not know whether it is an issue
> > of CMake or Visual Studio. When I try to generate a Visual Studio
> > project under a path that contains unicode characters, VS fails to
> > compile the simple test file and thus CMake terminates project
> > generation. Visual Studio does have some issues with projects under
> > unicode paths, but generally things work. (For eg. the C++AMP call tree
> > generator breaks, therefore no C++AMP project can be built in such
> > paths) I develop all my applications in my Skydrive folder which is
> > under the Users folder, and since my name holds unicode characters, I
> > have no control over mw home folder under Win 8 if I have a Live-ID user
> > in the OS. This is what happens:
> Clearly you need to change your name.  :)
> 
> Can you create a simple project from the IDE in that directory and get
> it to work?
> 
> If you run CMake with --debug-trycompile, can you load the solution in
> the CMakeTmp directory from the IDE?
> 



This problem can also be reproduced with English as the current language.
Just pick a character between 128 and 256 to include in the name of the build 
directory.
For example, buildñ, and run cmake in there pointing to any source tree.



For me, the Visual Studio 9 2008 generator works fine and the project file 
reports an encoding of Windows-1252.
It fails with the the Visual Studio 10 generator where the project file reports 
a utf-8 encoding, but it really isn't utf-8.
So I get errors like this:
 C:\...\cmake\buildñ\CMakeFiles\CMakeTmp\cmTryCompileExec926
91608.vcxproj(56,110):
 error MSB4025: The project file could not be loaded.  Invalid character in
 the given encoding.  Line 56, position 110.



Modifying cmVisualStudio10TargetGenerator.cxx to set the encoding of the visual 
studio file to Windows-1252 instead of utf-8 fixes the problem for me.



Clint
--



Powered by www.kitware.com



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



Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:



CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html



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



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



Powered by www.kitware.com



Please keep messages on-topic and check the CMake FAQ at: 
http://

[CMake] Modern CMake with Qt and Boost

2013-11-13 Thread Stephen Kelly

Hello,

Last week I gave a talk at a C++ conference in Germany about 'modern CMake', 
which is approximately 'CMake with usage requirements'.

I wrote a blog post with the slides and explanation here:

 http://www.kdab.com/modern-cmake-with-qt-and-boost/

Thanks,

Steve.


--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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


Re: [CMake] Unicode path wrecks havoc with VS2013 generator

2013-11-13 Thread clinton
- Original Message -

> I have tried to open the solution by the IDE itself, but that fails to load
> the solution also. It report the same error while trying to load the
> projects inside.

> Shall I rebuild CMake with the mentioned patch to make it work, or can I hope
> of a patch that solves this problem?

You can manually edit the visual studio project file to replace "utf-8" with 
"Windows-1252" (or whatever is appropriate for your language) and load the 
project in visual studio. 

If that works, can you please modify cmVisualStudio10TargetGenerator.cxx to 
change from "utf-8" to "Windows-1252" to see if you can build the rest of your 
project. 
Let us know so we can include a fix. 

Clint 

> Feladó: clin...@elemtech.com
> Elküldve: ‎szombat‎, ‎2013‎. ‎november‎ ‎9‎. ‎7‎:‎14
> Címzett: cmake@cmake.org

> - Original Message -
> > On 11/8/2013 4:48 AM, Nagy-Egri Máté Ferenc wrote:
> > > Hi!
> > >
> > > I have the following issue, which I do not know whether it is an issue
> > > of CMake or Visual Studio. When I try to generate a Visual Studio
> > > project under a path that contains unicode characters, VS fails to
> > > compile the simple test file and thus CMake terminates project
> > > generation. Visual Studio does have some issues with projects under
> > > unicode paths, but generally things work. (For eg. the C++AMP call tree
> > > generator breaks, therefore no C++AMP project can be built in such
> > > paths) I develop all my applications in my Skydrive folder which is
> > > under the Users folder, and since my name holds unicode characters, I
> > > have no control over mw home folder under Win 8 if I have a Live-ID user
> > > in the OS. This is what happens:
> > Clearly you need to change your name. :)
> >
> > Can you create a simple project from the IDE in that directory and get
> > it to work?
> >
> > If you run CMake with --debug-trycompile, can you load the solution in
> > the CMakeTmp directory from the IDE?
> >

> This problem can also be reproduced with English as the current language.
> Just pick a character between 128 and 256 to include in the name of the build
> directory.
> For example, buildñ, and run cmake in there pointing to any source tree.

> For me, the Visual Studio 9 2008 generator works fine and the project file
> reports an encoding of Windows-1252.
> It fails with the the Visual Studio 10 generator where the project file
> reports a utf-8 encoding, but it really isn't utf-8.
> So I get errors like this:
> C:\...\cmake\buildñ\CMakeFiles\CMakeTmp\cmTryCompileExec926
> 91608.vcxproj(56,110):
> error MSB4025: The project file could not be loaded. Invalid character in
> the given encoding. Line 56, position 110.

> Modifying cmVisualStudio10TargetGenerator.cxx to set the encoding of the
> visual studio file to Windows-1252 instead of utf-8 fixes the problem for
> me.

> Clint
> --

> Powered by www.kitware.com

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

> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:

> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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

> --

> Powered by www.kitware.com

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

> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:

> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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

Re: [CMake] Unicode path wrecks havoc with VS2013 generator

2013-11-13 Thread Nagy-Egri Máté Ferenc
I have tried to open the solution by the IDE itself, but that fails to load the 
solution also. It report the same error while trying to load the projects 
inside.


Shall I rebuild CMake with the mentioned patch to make it work, or can I hope 
of a patch that solves this problem?






Feladó: clin...@elemtech.com
Elküldve: ‎szombat‎, ‎2013‎. ‎november‎ ‎9‎. ‎7‎:‎14
Címzett: cmake@cmake.org







- Original Message -
> On 11/8/2013 4:48 AM, Nagy-Egri Máté Ferenc wrote:
> > Hi!
> >
> > I have the following issue, which I do not know whether it is an issue
> > of CMake or Visual Studio. When I try to generate a Visual Studio
> > project under a path that contains unicode characters, VS fails to
> > compile the simple test file and thus CMake terminates project
> > generation. Visual Studio does have some issues with projects under
> > unicode paths, but generally things work. (For eg. the C++AMP call tree
> > generator breaks, therefore no C++AMP project can be built in such
> > paths) I develop all my applications in my Skydrive folder which is
> > under the Users folder, and since my name holds unicode characters, I
> > have no control over mw home folder under Win 8 if I have a Live-ID user
> > in the OS. This is what happens:
> Clearly you need to change your name.  :)
> 
> Can you create a simple project from the IDE in that directory and get
> it to work?
> 
> If you run CMake with --debug-trycompile, can you load the solution in
> the CMakeTmp directory from the IDE?
> 

This problem can also be reproduced with English as the current language.
Just pick a character between 128 and 256 to include in the name of the build 
directory.
For example, buildñ, and run cmake in there pointing to any source tree.

For me, the Visual Studio 9 2008 generator works fine and the project file 
reports an encoding of Windows-1252.
It fails with the the Visual Studio 10 generator where the project file reports 
a utf-8 encoding, but it really isn't utf-8.
So I get errors like this:
 C:\...\cmake\buildñ\CMakeFiles\CMakeTmp\cmTryCompileExec926
91608.vcxproj(56,110):
 error MSB4025: The project file could not be loaded.  Invalid character in
 the given encoding.  Line 56, position 110.

Modifying cmVisualStudio10TargetGenerator.cxx to set the encoding of the visual 
studio file to Windows-1252 instead of utf-8 fixes the problem for me.

Clint
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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

[CMake] Wiki update needed: "CMake/Tutorials/How to create a ProjectConfig.cmake file"

2013-11-13 Thread Johannes Zarl
Hi,

I noticed that the tutorial for creating ProjectConfig files[1] in the wiki is 
not really up to date anymore. To be precise, the CMakePackageConfigHelpers 
cmake module is not mentioned on the page.

The main author of the tutorial goes by the username "Themiwi".

@Themiwi: if you are reading this: could drop me a quick note whether you have 
the time to update the wiki page or not?

Thanks,
  Johannes


[1] CMake/Tutorials/How to create a ProjectConfig.cmake file: 
http://www.cmake.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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


Re: [CMake] Git Doesn't to Pull with ExternalProject_Add

2013-11-13 Thread Daniele E. Domenichelli
Hello Constantine,

I'm investigating the same issue right in this moment...

On 13/11/13 10:19, Constantine Zakkaroff wrote:
> I have a SuperBuild project (using CMake 2.8.12 on Windows Vista x64) 
> depending on some other project cloned from a git repository. However 
> I've noticed the cloner repository doesn't get updated when I rebuild 
> the project.
> 
> Is it right to expect the repository to be updated automatically? Or 
> does it need to be done manually?

How do you set ${proj}_GIT_TAG? If it a tag or a commit hash it should
work, therefore if you change it in your superbuild, your repository
should be updated.

Unfortunately it doesn't work for branches. Therefore if you set it to
"master" it will work for the clone, but it won't work for the updates,
because the branch "master" is your local branch not the remote one
("origin/master")

Perhaps this should be fixed somehow, either the documentation of the
module to explicitly state this, or the module itself to pull from the
remote branch if GIT_TAG is a branch.


Cheers,
 Daniele

--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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


[CMake] Git Doesn't to Pull with ExternalProject_Add

2013-11-13 Thread Constantine Zakkaroff

Hello ALL,

I have a SuperBuild project (using CMake 2.8.12 on Windows Vista x64) 
depending on some other project cloned from a git repository. However 
I've noticed the cloner repository doesn't get updated when I rebuild 
the project.


Is it right to expect the repository to be updated automatically? Or 
does it need to be done manually?


Here's how the call to ExternalProject_Add looks in my project:

   ExternalProject_Add(${proj}
 GIT_REPOSITORY ${${proj}_REPOSITORY}
 GIT_TAG ${${proj}_GIT_TAG}
 SOURCE_DIR ${proj}
 BINARY_DIR ${proj}-build
 CMAKE_GENERATOR ${gen}
 CMAKE_ARGS
   -Wno-dev
   --no-warn-unused-cli
   ${COMMON_EXTERNAL_PROJECT_ARGS}
   ${${proj}_CMAKE_OPTIONS}
 INSTALL_COMMAND ""
 DEPENDS ${${proj}_DEPENDENCIES}
   )

Many thanks,
Constantine
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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


Re: [CMake] ExternalData on unmounted Windows shares?

2013-11-13 Thread Magnus Therning
On Tue, Nov 12, 2013 at 5:09 PM, Brad King  wrote:
> On 11/12/2013 08:43 AM, Magnus Therning wrote:
>> Is there some way to point to an unmounted Windows share?
>
> Add to ExternalData_URL_TEMPLATES the entry
>
>  file:share.host/foo/bar/%(algo)/%(hash)

That still fails on the real path I have to use in the project.  Are
there any known issues with  hidden shares (name ending in $), or with
paths containing spaces?

The path that fails contains both :(

> Since it is accessible through filesystem APIs you could also
> set ExternalData_OBJECT_STORES to
>
>  c:/some/local/store;//share.host/foo/bar
>
> That tells ExternalData to use objects found in the local store
> or the network path directly without downloading.  If an object
> is not found in either path, then the url templates will be
> searched for the object and it will be downloaded to the local
> store (first entry in ExternalData_OBJECT_STORES).

That's what I was testing and wrote about in another response on this thread:

- It's not possible to set only ExternalData_OBJECT_STORES, one has to
set ExternalData_URL_TEMPLATES too.
- I'd like to not have to map the drive (other users of the project
would then have to free up a specific drive letter) and
ExternalData_OBJECT_STORES don't seem to handle paths of the form
"//share.host/foo/bar".

/M

-- 
Magnus Therning  OpenPGP: 0xAB4DFBA4
email: mag...@therning.org   jabber: mag...@therning.org
twitter: magthe   http://therning.org/magnus
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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


Re: [CMake] Install multiple components using CPack

2013-11-13 Thread Alexander Broekhuis
Hi,


2013/11/11 Mark Stijnman 

> On Tue, Nov 5, 2013 at 12:11 PM, Alexander Broekhuis
>
>
> The easiest way I know is to use CPACK_COMPONENTS_ALL, which is what I
> use to package subsets of my components.
>

I now solved it using CPACK_INSTALL_CMAKE_PROJECTS and populating it with
all components to be installed. Not sure how CPACK_COMPONENTS_ALL is
different, but will take a look.

>
> I don't currently use grouping, but if I would, I would create
> something like an add_component_to_group(compname, groupname)
> function, that you can call for every component when you first define
> it (or add a GROUP parameter it to my define_package_component()
> function). In addition to setting
> PACK_COMPONENT_${compname_uppercase}_GROUP to ${groupname}, it should
> append ${compname} to a (global) package_group_${groupname}_components
> list variable. Then populate the CPACK_COMPONENTS_ALL list by
> iterating over your list of required groups, and for each group name,
> append ${package_group_${groupname}_components}.


In my custom Macros I do more or less the same. I append all components to
a cached internal variable. Then later on I create the CPack configuration
with this information. I guess you mean the same when talking about a
global variable? Or is there a different more simpler way without using the
cache?

I use the following:
set(CPACK_INSTALL_CMAKE_PROJECTS)
foreach(component ${INSTALL_BUNDLES})
list(APPEND CPACK_INSTALL_CMAKE_PROJECTS "@PROJECT_BINARY_DIR@;Apache
Celix;${component};/")
endforeach(component)
list(APPEND CPACK_INSTALL_CMAKE_PROJECTS "@PROJECT_BINARY_DIR@;Apache
Celix;framework;/")

CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/templates/CPackConfig-Installation.in
CPackConfig-Installation.cmake @ONLY)



>


> Hope that gives you some ideas to start from,
>

Yes it dit, it also gave me the idea that my solution is in the right
direction and that CMake/CPack doesn't support groups in its configuration.
Thanks!


>
> regards Mark
>



-- 
Met vriendelijke groet,

Alexander Broekhuis
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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