Automoc with MSVC gets extra argument. Where is the bug?

Stephen Kelly steveire at gmail.com
Tue Feb 2 22:49:13 CET 2010


Alexander Neundorf wrote:

> On Sunday 31 January 2010, Stephen Kelly wrote:
>> Hi,
>>
>> While trying to get Grantlee working with MSVC I hit a bug in Automoc4.
>>
>> QCoreApplication::arguments always contained the drive letter ("C:") in
>> the second position when run by cmake, but not when I invoked the same
>> command myself. I think I used cmake --debug-mode or nmake VERBOSE=1 to
>> get the command it was executing.
> 
> Hmm, can you please explain ?
> What command did you see, what did you execute manually ?
> And what where the command line arguments you then got in
> QCoreApplication::arguments ?

Sorry. I wrote that email in a hurry on a linux machine and had intended to 
follow up with details when I got back on windows.

After adding qDebug() << args; after both QCoreApplication::arguments() 
calls, here's the output while attempting to compile grantlee:

(grantlee.org if you want to give it a shot. It finally builds! :) )

As you can see, when cmake invokes automake, the path:

C:/software/grantlee/build/grantlee_core_library/grantlee_core_library_automoc.cpp

is split into 

C:

and 

/software/grantlee/build/grantlee_core_library/grantlee_core_library_automoc.cpp

which is where I get breakage. So this looks like a cmake bug to me. When I 
invoke the same command myself, I can successfully run the command.


C:\software\grantlee\build>cmake ..
-- Building for: NMake Makefiles
-- The C compiler identification is MSVC
-- The CXX compiler identification is MSVC
-- Check for CL compiler version
-- Check for CL compiler version - 1500
-- Check if this is a free VC compiler
-- Check if this is a free VC compiler - no
-- Check CL platform
-- Check CL platform - 32 bit
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual 
Studio
9.0/VC/bin/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual 
Studio
9.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual 
Studi
o 9.0/VC/bin/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual 
Studi
o 9.0/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - not found.
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found.
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found.
-- Found Qt-Version 4.6.1 (using C:/Qt/4.6.1/bin/qmake.exe)
-- Configuring done
-- Generating done
-- Build files have been written to: C:/software/grantlee/build

C:\software\grantlee\build>nmake VERBOSE=1

Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

        "C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -HC:
\software\grantlee
-BC:\software\grantlee\build --check-build-system CMakeFiles\Makefile.cmake 
0
        "C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E 
cmake_progress_start
 C:\software\grantlee\build\CMakeFiles C:
\software\grantlee\build\CMakeFiles\pro
gress.marks
        "C:\Program Files (x86)\Microsoft Visual Studio 
9.0\VC\BIN\nmake.exe" -f
 CMakeFiles\Makefile2 /nologo -                   all
        "C:\Program Files (x86)\Microsoft Visual Studio 
9.0\VC\BIN\nmake.exe" -f
 grantlee_core_library\CMakeFiles\grantlee_core_library_automoc.dir\build.make 
/
nologo -L                  
grantlee_core_library\CMakeFiles\grantlee_core_librar
y_automoc.dir\depend
        "C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -E cmake_depends 
"NMake
 Makefiles" C:\software\grantlee C:\software\grantlee\grantlee_core_library 
C:\s
oftware\grantlee\build C:\software\grantlee\build\grantlee_core_library C:
\softw
are\grantlee\build\grantlee_core_library\CMakeFiles\grantlee_core_library_automo
c.dir\DependInfo.cmake --color=
        "C:\Program Files (x86)\Microsoft Visual Studio 
9.0\VC\BIN\nmake.exe" -f
 grantlee_core_library\CMakeFiles\grantlee_core_library_automoc.dir\build.make 
/
nologo -L                  
grantlee_core_library\CMakeFiles\grantlee_core_librar
y_automoc.dir\build
        cd C:\software\grantlee\build\grantlee_core_library
        "C:\Program Files (x86)\Automoc4\bin\automoc4.exe" 
C:/software/grantlee/build/grantlee_core_library/grantlee_core_library_automoc.cpp 
C:/software/grantlee/grantlee_core_library 
C:/software/grantlee/build/grantlee_core_library C:/Qt/
4.6.1/bin/moc.exe "C:/Program Files (x86)/CMake 2.8/bin/cmake.exe"
("C:\Program Files (x86)\Automoc4\bin\automoc4.exe", "C:", 
"/software/grantlee/build/grantlee_core_library/grantlee_core_library_automoc.cpp", 
"C:/software/grantlee/grantlee_core_library", 
"C:/software/grantlee/build/grantlee_core_library",
 "C:/Qt/4.6.1/bin/moc.exe", "C:/Program Files (x86)/CMake2.8/bin/cmake.exe")
Error: syntax error in C:.files
NMAKE : fatal error U1077: '"C:\Program Files 
(x86)\Automoc4\bin\automoc4.exe"'
: return code '0x1'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 
9.0\
VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 
9.0\
VC\BIN\nmake.exe"' : return code '0x2'
Stop.


#### Manually running it:

C:\software\grantlee\build>"C:\Program Files 
(x86)\Automoc4\bin\automoc4.exe" 
C:/software/grantlee/build/grantlee_core_library/grantlee_core_library_automoc.cpp
 C:/software/grantlee/grantlee_core_library 
C:/software/grantlee/build/grantlee_core_library C:/Qt/4.6.1/bin/moc.exe 
"C:/Program Files (x86)/CMake 2.8/bin/cmake.exe"
("C:\Program Files (x86)\Automoc4\bin\automoc4.exe", 
"C:/software/grantlee/build
/grantlee_core_library/grantlee_core_library_automoc.cpp", 
"C:/software/grantlee
/grantlee_core_library", "C:/software/grantlee/build/grantlee_core_library", 
"C:
/Qt/4.6.1/bin/moc.exe", "C:/Program Files (x86)/CMake 2.8/bin/cmake.exe")
("C:\Program Files (x86)\Automoc4\bin\automoc4.exe", 
"C:/software/grantlee/build
/grantlee_core_library/grantlee_core_library_automoc.cpp", 
"C:/software/grantlee
/grantlee_core_library", "C:/software/grantlee/build/grantlee_core_library", 
"C:
/Qt/4.6.1/bin/moc.exe", "C:/Program Files (x86)/CMake 2.8/bin/cmake.exe")
Generating moc_parser.cpp
Generating moc_node.cpp
Generating moc_mutabletemplate.cpp
Generating moc_template.cpp

C:\software\grantlee\build>


> 
> Alex




More information about the Kde-buildsystem mailing list