View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0013116CMakeCMakepublic2012-04-09 22:422012-09-03 16:00
Reporterhume npx 
Assigned ToBrad King 
PrioritynormalSeveritymajorReproducibilityalways
StatusclosedResolutionno change required 
PlatformwindowsOSwin7 x64OS Versionwin7 x64 sp1
Product Version 
Target VersionFixed in Version 
Summary0013116: Cmake Nmake generator generate empty /MACHINE:for first run under a project
DescriptionCmake Nmake generator generate empty /MACHINE: for first run under a folder that make the compilation failed, if delete the folder contents and run the same cmake command again, then everything works as expected and /MACHINE:x86 is properly generated in the makefiles.
Steps To Reproducet.c
#include <stdio.h>

/* main entry */
int
#if defined(_MSC_VER)
__cdecl
#endif
main(int argc, char *argv[]) {
  printf("Hello world!\n");
  return 0;
}


CMakeLists.txt
cmake_minimum_required(VERSION 2.8)

project(test)

add_executable(test t.c)

then bring up cmd prompt and run under the folder:
cmake -G "NMake Makefiles" .

would result error if you run nmake

delete all the generated temp files and run the above step again, everything worked.
TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0029110)
Brad King (manager)
2012-04-10 10:25

I cannot reproduce this. I get /machine:X86 on the link line after the very first configuration.

What version of CMake are you testing?
(0029111)
hume npx (reporter)
2012-04-10 10:44

version is cmake 2.8.7 platform is win7 x64 for 32 bit vc environment, OS language is eastern, msvc is 10.0 newest patch.

in CmakeCache.txt, the wrong line is:

//Flags used by the linker.
CMAKE_EXE_LINKER_FLAGS:STRING=' /STACK:10000000 /machine: '

//Flags used by the linker during debug builds.
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL:YES

//Flags used by the linker during release minsize builds.
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
(0029112)
hume npx (reporter)
2012-04-10 10:50

in my test in order to reproduce it, I must close all cmd.exe instance and reopen one, if not all cmd.exe closed after successful cmake build for second time, then it would work as expected.
(0029113)
Brad King (manager)
2012-04-10 10:51

I have the same environment except the OS language is English:

>type ..\CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(test)
add_executable(test t.c)

>type ..\t.c
#include <stdio.h>

/* main entry */
int
#if defined(_MSC_VER)
__cdecl
#endif
main(int argc, char *argv[]) {
  printf("Hello world!\n");
  return 0;
}

>cmake --version
cmake version 2.8.7

>cmake .. -G"NMake Makefiles"
-- The C compiler identification is MSVC
-- The CXX compiler identification is MSVC
-- Check for CL compiler version
-- Check for CL compiler version - 1600
-- Check if this is a free VC compiler
-- Check if this is a free VC compiler - no
-- Check for working C compiler: c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/cl.exe
-- Check for working C compiler: c:/Program Files (x86)/Microsoft Visual Studio 10.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 Studio 10.0/VC/bin/cl.exe

-- Check for working CXX compiler: c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/cl.exe 
-- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done

>type CMakeCache.txt
... CMAKE_EXE_LINKER_FLAGS:STRING=' /STACK:10000000 /machine:X86 ' ...

>type CMakeFiles\test.dir\build.make
... /machine:X86 ...

>nmake
>test
Hello world!


Please attach your CMakeFiles\*.log files from a fresh run.
(0029122)
hume npx (reporter)
2012-04-10 22:07

Oh,finally I reasoned out what caused the strange result, it's because I run the cmake .. -G"NMake Makefiles"
without setting vcvars.bat first, then I saw the cmake error message need to setup and run vcvars.bat, I just run it, now second time run cmake just works, but the flags in cmakecache.txt is obviously wrong.

so this may not be a bug, but an improvement that cmake can make to sugguest unsccessfull run exists and delete cache files, just like the suggestions make as to different compiler runs.
(0029123)
hume npx (reporter)
2012-04-10 22:08

however thanks, this can be closed.
(0029124)
Brad King (manager)
2012-04-11 07:58

Thanks for reporting back.
(0030850)
David Cole (manager)
2012-09-03 16:00

Closing resolved issues that have not been updated in more than 4 months.

 Issue History
Date Modified Username Field Change
2012-04-09 22:42 hume npx New Issue
2012-04-10 10:25 Brad King Note Added: 0029110
2012-04-10 10:44 hume npx Note Added: 0029111
2012-04-10 10:50 hume npx Note Added: 0029112
2012-04-10 10:51 Brad King Note Added: 0029113
2012-04-10 22:07 hume npx Note Added: 0029122
2012-04-10 22:08 hume npx Note Added: 0029123
2012-04-11 07:58 Brad King Note Added: 0029124
2012-04-11 07:58 Brad King Status new => resolved
2012-04-11 07:58 Brad King Resolution open => no change required
2012-04-11 07:58 Brad King Assigned To => Brad King
2012-09-03 16:00 David Cole Note Added: 0030850
2012-09-03 16:00 David Cole Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team