[CMake] Why do jom/nmake generators require cl to build with mingw?
John R. Cary
cary at txcorp.com
Thu Sep 15 10:35:11 EDT 2011
On 9/15/11 8:27 AM, John Drescher wrote:
> On Thu, Sep 15, 2011 at 8:08 AM, John R. Cary<cary at 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
More information about the CMake
mailing list