VS: Make DetermineCompilerId working with WinCE too
Add a dummy mainCRTStartup() function, since the linker searches for it instead of main() and set the CMAKE_SYSTEM_* variables depending on the MSVC_C_ARCHITECTURE_ID and CMAKE_VS_WINCE_VERSION variables.
This commit is contained in:
parent
038df9e49e
commit
40c36c9f7b
@ -228,3 +228,7 @@ int main(int argc, char* argv[])
|
|||||||
return require;
|
return require;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ADD_MAINCRTSTARTUP
|
||||||
|
void mainCRTStartup() {}
|
||||||
|
#endif
|
||||||
|
@ -210,3 +210,7 @@ int main(int argc, char* argv[])
|
|||||||
(void)argv;
|
(void)argv;
|
||||||
return require;
|
return require;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ADD_MAINCRTSTARTUP
|
||||||
|
extern "C" void mainCRTStartup() {}
|
||||||
|
#endif
|
||||||
|
@ -140,6 +140,9 @@ Id flags: ${testflags}
|
|||||||
else()
|
else()
|
||||||
set(id_toolset "")
|
set(id_toolset "")
|
||||||
endif()
|
endif()
|
||||||
|
if(CMAKE_VS_WINCE_VERSION)
|
||||||
|
set(id_definitions "ADD_MAINCRTSTARTUP")
|
||||||
|
endif()
|
||||||
if("${CMAKE_MAKE_PROGRAM}" MATCHES "[Mm][Ss][Bb][Uu][Ii][Ll][Dd]")
|
if("${CMAKE_MAKE_PROGRAM}" MATCHES "[Mm][Ss][Bb][Uu][Ii][Ll][Dd]")
|
||||||
set(build /p:Configuration=Debug /p:Platform=@id_arch@ /p:VisualStudioVersion=${vs_version}.0)
|
set(build /p:Configuration=Debug /p:Platform=@id_arch@ /p:VisualStudioVersion=${vs_version}.0)
|
||||||
elseif("${CMAKE_MAKE_PROGRAM}" MATCHES "[Mm][Ss][Dd][Ee][Vv]")
|
elseif("${CMAKE_MAKE_PROGRAM}" MATCHES "[Mm][Ss][Dd][Ee][Vv]")
|
||||||
|
@ -106,6 +106,12 @@ if(CMAKE_SYSTEM_NAME)
|
|||||||
set(CMAKE_CROSSCOMPILING TRUE)
|
set(CMAKE_CROSSCOMPILING TRUE)
|
||||||
endif()
|
endif()
|
||||||
set(PRESET_CMAKE_SYSTEM_NAME TRUE)
|
set(PRESET_CMAKE_SYSTEM_NAME TRUE)
|
||||||
|
elseif(CMAKE_VS_WINCE_VERSION)
|
||||||
|
set(CMAKE_SYSTEM_NAME "WindowsCE")
|
||||||
|
set(CMAKE_SYSTEM_VERSION "${CMAKE_VS_WINCE_VERSION}")
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR "${MSVC_C_ARCHITECTURE_ID}")
|
||||||
|
set(CMAKE_CROSSCOMPILING TRUE)
|
||||||
|
set(PRESET_CMAKE_SYSTEM_NAME TRUE)
|
||||||
else()
|
else()
|
||||||
set(CMAKE_SYSTEM_NAME "${CMAKE_HOST_SYSTEM_NAME}")
|
set(CMAKE_SYSTEM_NAME "${CMAKE_HOST_SYSTEM_NAME}")
|
||||||
set(CMAKE_SYSTEM_VERSION "${CMAKE_HOST_SYSTEM_VERSION}")
|
set(CMAKE_SYSTEM_VERSION "${CMAKE_HOST_SYSTEM_VERSION}")
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
PreprocessorDefinitions=""
|
PreprocessorDefinitions="@id_definitions@"
|
||||||
MinimalRebuild="false"
|
MinimalRebuild="false"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="3"
|
RuntimeLibrary="3"
|
||||||
|
@ -143,6 +143,12 @@ void cmGlobalVisualStudio8Generator::AddPlatformDefinitions(cmMakefile* mf)
|
|||||||
{
|
{
|
||||||
cmGlobalVisualStudio71Generator::AddPlatformDefinitions(mf);
|
cmGlobalVisualStudio71Generator::AddPlatformDefinitions(mf);
|
||||||
mf->AddDefinition("CMAKE_VS_PLATFORM_NAME", this->GetPlatformName());
|
mf->AddDefinition("CMAKE_VS_PLATFORM_NAME", this->GetPlatformName());
|
||||||
|
|
||||||
|
if(this->TargetsWindowsCE())
|
||||||
|
{
|
||||||
|
mf->AddDefinition("CMAKE_VS_WINCE_VERSION",
|
||||||
|
this->WindowsCEVersion.c_str());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user