[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