[cmake-developers] [CMake 0014436]: Missing ARCHFAM preprocessor definition in WinCE Visual Studio generators (armv41)

Mantis Bug Tracker mantis at public.kitware.com
Tue Sep 24 10:21:33 EDT 2013


The following issue has been SUBMITTED. 
====================================================================== 
http://public.kitware.com/Bug/view.php?id=14436 
====================================================================== 
Reported By:                mar-na
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   14436
Category:                   CMake
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2013-09-24 10:21 EDT
Last Modified:              2013-09-24 10:21 EDT
====================================================================== 
Summary:                    Missing ARCHFAM preprocessor definition in WinCE
Visual Studio generators (armv41)
Description: 
I try to compile a HelloWorld console application for WinCE STANDARDSDK_500
(ARMV41) with VS 2008.

In CMake 2.8.11 it works but in 2.8.11.20130923 failed it with strange compiler
error:

(compiler log from VS 2008)
Compiling...
HelloWorld.cpp
C:\Programme\Windows CE
Tools\wce500\STANDARDSDK_500\include\ARMV4I\winnt.h(2975) : error C2146: syntax
error : missing ';' before identifier 'ContextRecord'
C:\Programme\Windows CE
Tools\wce500\STANDARDSDK_500\include\ARMV4I\winnt.h(2975) : error C4430: missing
type specifier - int assumed. Note: C++ does not support default-int
C:\Programme\Windows CE
Tools\wce500\STANDARDSDK_500\include\ARMV4I\winnt.h(2975) : error C4430: missing
type specifier - int assumed. Note: C++ does not support default-int

I compare the generated project files and found that in the CMake trunk are the
preprocessor definition for ARCHFAM is missing.
If I manuelle added $(ARCHFAM);$(_ARCHFAM_) or ARM;_ARM_ than it worked.

Steps to Reproduce: 
Use "Visual Studio 9 2008 STANDARDSDK_500 (ARMV41)" generator.
ARCHFAM is missing in preprocessor definition. e.g. for ARMV41 ARM;_ARM_.
Or alternativly (as Visual Studio 'native' do it) $(ARCHFAM);$(_ARCHFAM_)


cmake 2.8.11 STANDARDSDK_500 (ARMV41)
-------------------------------------
_WIN32_WCE=0x500
UNDER_CE
ARM
_ARM_
_WINDOWS
_DEBUG
CMAKE_INTDIR=\"Debug\"

cmake 2.8.11.20130923 STANDARDSDK_500 (ARMV41)
----------------------------------------------

_WIN32_WCE=0x500
UNDER_CE
THUMB
_THUMB_
_WINDOWS
_DEBUG
CMAKE_INTDIR=\"Debug\"

-> is THUMB and _THUMB_ here right? $(ARCHFAM);$(_ARCHFAM_) or ARM;_ARM_ is
missing


for comparison only:
If the "Visual Studio 9 2008 STANDARDSDK_500 (x86)" generator is used it works

cmake 2.8.11.20130923  STANDARDSDK_500 (x86)
------------------------

_WIN32_WCE=0x500
UNDER_CE
X86
_X86_
_WINDOWS
_DEBUG
CMAKE_INTDIR=\"Debug\"



Additional Information: 
If a project is generate with the VS than the preprocessor definition are set to
this:

'native' generated with VS 2008
-------------------------------
DEBUG
_WIN32_WCE=$(CEVER)
UNDER_CE
WINCE
DEBUG
_CONSOLE
$(ARCHFAM)
$(_ARCHFAM_)
====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2013-09-24 10:21 mar-na         New Issue                                    
======================================================================




More information about the cmake-developers mailing list