Re: [CMake] Why do jom/nmake generators require cl to build with mingw?

2011-09-15 Thread John Drescher
On Thu, Sep 15, 2011 at 8:08 AM, John R. Cary c...@txcorp.com wrote:
 I was trying to configure a project to use jom or name with the
 mingw compilers.

 I was configuring with

 cmake \
  -DCMAKE_INSTALL_PREFIX:PATH=C:/winsame/volatile-mingw/txphysics-r1504-ser \
  -DCMAKE_BUILD_TYPE:STRING=RELEASE \
  -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE \
  -DCMAKE_INSTALL_ALWAYS:BOOL=TRUE \
  -DCMAKE_COLOR_MAKEFILE:BOOL=FALSE \
  -G 'NMake Makefiles' \
  -DCMAKE_C_COMPILER:FILEPATH='mingw32-gcc' \
  -DCMAKE_CXX_COMPILER:FILEPATH='mingw32-g++' \
  -DCMAKE_Fortran_COMPILER:FILEPATH='mingw32-gfortran' \
  C:/cygwin/home/user/vorpalall-mg/txphysics

 but got the warning,

 CMake Warning at CMakeLists.txt:10 (project):
  To use the NMake generator, cmake must be run from a shell that can use the
  compiler cl from the command line.  This environment does not contain
  INCLUDE, LIB, or LIBPATH, and these must be set for the cl compiler to
  work.

 and ultimately the error,

 CMake Error at C:/Program Files/CMake
 2.8/share/cmake-2.8/Modules/CMakeRCInformation.cmake:22
 (GET_FILENAME_COMPONENT):
  get_filename_component called with incorrect number of arguments
 Call Stack (most recent call first):
  C:/Program Files/CMake
 2.8/share/cmake-2.8/Modules/Platform/Windows-GNU.cmake:60 (enable_language)
  C:/Program Files/CMake
 2.8/share/cmake-2.8/Modules/Platform/Windows-GNU-C.cmake:1 (include)
  C:/Program Files/CMake
 2.8/share/cmake-2.8/Modules/CMakeCInformation.cmake:56 (INCLUDE)
  CMakeLists.txt:2 (PROJECT)

 So I did put cl in my path, and now it configures, but this seems strange.
 Is it necessary to still have cl when using mingw?


I thought jom and nmake Generators were both for Visual Studio.

John
___
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


Re: [CMake] Why do jom/nmake generators require cl to build with mingw?

2011-09-15 Thread John R. Cary

On 9/15/11 8:27 AM, John Drescher wrote:

On Thu, Sep 15, 2011 at 8:08 AM, John R. Caryc...@txcorp.com  wrote:

I was trying to configure a project to use jom or name with the
mingw compilers.

I was configuring with

cmake \
  -DCMAKE_INSTALL_PREFIX:PATH=C:/winsame/volatile-mingw/txphysics-r1504-ser \
  -DCMAKE_BUILD_TYPE:STRING=RELEASE \
  -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE \
  -DCMAKE_INSTALL_ALWAYS:BOOL=TRUE \
  -DCMAKE_COLOR_MAKEFILE:BOOL=FALSE \
  -G 'NMake Makefiles' \
  -DCMAKE_C_COMPILER:FILEPATH='mingw32-gcc' \
  -DCMAKE_CXX_COMPILER:FILEPATH='mingw32-g++' \
  -DCMAKE_Fortran_COMPILER:FILEPATH='mingw32-gfortran' \
  C:/cygwin/home/user/vorpalall-mg/txphysics

but got the warning,

CMake Warning at CMakeLists.txt:10 (project):
  To use the NMake generator, cmake must be run from a shell that can use the
  compiler cl from the command line.  This environment does not contain
  INCLUDE, LIB, or LIBPATH, and these must be set for the cl compiler to
  work.

and ultimately the error,

CMake Error at C:/Program Files/CMake
2.8/share/cmake-2.8/Modules/CMakeRCInformation.cmake:22
(GET_FILENAME_COMPONENT):
  get_filename_component called with incorrect number of arguments
Call Stack (most recent call first):
  C:/Program Files/CMake
2.8/share/cmake-2.8/Modules/Platform/Windows-GNU.cmake:60 (enable_language)
  C:/Program Files/CMake
2.8/share/cmake-2.8/Modules/Platform/Windows-GNU-C.cmake:1 (include)
  C:/Program Files/CMake
2.8/share/cmake-2.8/Modules/CMakeCInformation.cmake:56 (INCLUDE)
  CMakeLists.txt:2 (PROJECT)

So I did put cl in my path, and now it configures, but this seems strange.
Is it necessary to still have cl when using mingw?


I thought jom and nmake Generators were both for Visual Studio.




I seem to be able to use them in a cygwin shell, but only
if I have cl and all the defines in my path, even if I never
use cl in the compilation (because I def'd the compilers
to be mingw...)

Also, jom, cl, mingw, nmake all have the same (Windows) path
concepts, instead of the cygwin paths.  So I think they should
work together, and I observe that they do.

So not sure how to answer your question


John


___
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


Re: [CMake] Why do jom/nmake generators require cl to build with mingw?

2011-09-15 Thread Bill Hoffman

On 9/15/2011 10:35 AM, John R. Cary wrote:



I seem to be able to use them in a cygwin shell, but only
if I have cl and all the defines in my path, even if I never
use cl in the compilation (because I def'd the compilers
to be mingw...)

Also, jom, cl, mingw, nmake all have the same (Windows) path
concepts, instead of the cygwin paths. So I think they should
work together, and I observe that they do.

So not sure how to answer your question

This is a new use case. I had never thought of using jom or nmake for 
anything other than cl.  As gmake is usually better.  Once the -j stuff 
fix for mingw gets into gmake, then there would be no reason to use jom 
I would think.


There seem to be two problems:

1. The warning about INCLUDE, LIB, etc.  This was done because so many 
people try to use cl without setting up the environment for it.  This 
should be reworked to only warn if cl is being used.


2. There is an error with the rc compiler. This is what is failing:

enable_language(RC)

This seems to only look for windres when the MinGW or Msys generators 
are used.


If you want to create two bugs for this that would be good.  Not sure 
when we will get to fixing it...  But, if you wanted to try I could help 
you.


Bugs would be:
- only warn about missing INCLUDE,LIB env when using the MS compiler.
- Look for windres when using gcc with nmake and jom if using gcc.

-Bill


___
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