Set CMAKE_VS_WINCE_SDK to specify the SDK. --- Source/cmGlobalVisualStudio10Generator.cxx | 48 ++++++++++++++++++++++++++++ Source/cmGlobalVisualStudio10Generator.h | 7 ++++ Source/cmGlobalVisualStudio11Generator.cxx | 12 +++++++ Source/cmGlobalVisualStudio11Generator.h | 2 ++ Source/cmGlobalVisualStudio12Generator.cxx | 12 +++++++ Source/cmGlobalVisualStudio12Generator.h | 2 ++ 6 files changed, 83 insertions(+)
diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index 19aa52c..5c1fd4b 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -165,6 +165,14 @@ bool cmGlobalVisualStudio10Generator::InitializeSystem(cmMakefile* mf) return false; } } + else if (this->SystemName == "WindowsCE") + { + this->SystemIsWindowsCE = true; + if (!this->InitializeWindowsCE(mf)) + { + return false; + } + } return true; } @@ -187,6 +195,46 @@ bool cmGlobalVisualStudio10Generator::InitializeWindowsStore(cmMakefile* mf) } //---------------------------------------------------------------------------- +bool cmGlobalVisualStudio10Generator::InitializeWindowsCE(cmMakefile* mf) +{ + this->DefaultPlatformToolset = this->SelectWindowsCEToolset(); + if (this->DefaultPlatformToolset.empty()) + { + cmOStringStream e; + e << this->GetName() << " supports Windows CE '8.0', but not '" + << this->SystemVersion << "'. Check CMAKE_SYSTEM_VERSION."; + mf->IssueMessage(cmake::FATAL_ERROR, e.str()); + return false; + } + + if (const char* platformName = mf->GetDefinition("CMAKE_VS_WINCE_SDK")) + { + this->PlatformName = platformName; + } + else { + cmOStringStream e; + e << this->GetName() << " for " << this->GetSystemName() << " requires an SDK. Please set CMAKE_VS_WINCE_SDK to the name of your SDK."; + mf->IssueMessage(cmake::FATAL_ERROR, e.str()); + return false; + } + + return true; +} + +//---------------------------------------------------------------------------- +std::string cmGlobalVisualStudio10Generator::SelectWindowsCEToolset() const +{ + if (this->SystemVersion == "8.0") + { + return "CE800"; + } + else + { + return ""; + } +} + +//---------------------------------------------------------------------------- void cmGlobalVisualStudio10Generator ::AddVSPlatformToolsetDefinition(cmMakefile* mf) const { diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h index 11fa954..9bceb2c 100644 --- a/Source/cmGlobalVisualStudio10Generator.h +++ b/Source/cmGlobalVisualStudio10Generator.h @@ -75,6 +75,10 @@ public: bool TargetsWindowsStore() const { return this->SystemIsWindowsStore; } + /** Return true if building for WindowsCE */ + bool TargetsWindowsCE() const + { return this->SystemIsWindowsCE; } + /** * Where does this version of Visual Studio look for macros for the * current user? Returns the empty string if this version of Visual @@ -106,8 +110,10 @@ protected: virtual bool InitializeSystem(cmMakefile* mf); virtual bool InitializeWindowsPhone(cmMakefile* mf); virtual bool InitializeWindowsStore(cmMakefile* mf); + virtual bool InitializeWindowsCE(cmMakefile* mf); virtual std::string SelectWindowsPhoneToolset() const { return ""; } virtual std::string SelectWindowsStoreToolset() const { return ""; } + virtual std::string SelectWindowsCEToolset() const; virtual const char* GetIDEVersion() { return "10.0"; } @@ -119,6 +125,7 @@ protected: std::string SystemVersion; bool SystemIsWindowsPhone; bool SystemIsWindowsStore; + bool SystemIsWindowsCE; bool ExpressEdition; bool UseFolderProperty(); diff --git a/Source/cmGlobalVisualStudio11Generator.cxx b/Source/cmGlobalVisualStudio11Generator.cxx index 39bbdc0..a71c42e 100644 --- a/Source/cmGlobalVisualStudio11Generator.cxx +++ b/Source/cmGlobalVisualStudio11Generator.cxx @@ -159,6 +159,12 @@ bool cmGlobalVisualStudio11Generator::InitializeWindowsStore(cmMakefile* mf) } //---------------------------------------------------------------------------- +bool cmGlobalVisualStudio11Generator::InitializeWindowsCE(cmMakefile* mf) +{ + return cmGlobalVisualStudio10Generator::InitializeWindowsCE(mf); +} + +//---------------------------------------------------------------------------- std::string cmGlobalVisualStudio11Generator::SelectWindowsPhoneToolset() const { if(this->SystemVersion == "8.0") @@ -179,6 +185,12 @@ std::string cmGlobalVisualStudio11Generator::SelectWindowsStoreToolset() const } //---------------------------------------------------------------------------- +std::string cmGlobalVisualStudio11Generator::SelectWindowsCEToolset() const +{ + return this->cmGlobalVisualStudio10Generator::SelectWindowsCEToolset(); +} + +//---------------------------------------------------------------------------- void cmGlobalVisualStudio11Generator::WriteSLNHeader(std::ostream& fout) { fout << "Microsoft Visual Studio Solution File, Format Version 12.00\n"; diff --git a/Source/cmGlobalVisualStudio11Generator.h b/Source/cmGlobalVisualStudio11Generator.h index bbd935c..9dd3271 100644 --- a/Source/cmGlobalVisualStudio11Generator.h +++ b/Source/cmGlobalVisualStudio11Generator.h @@ -36,8 +36,10 @@ public: protected: virtual bool InitializeWindowsPhone(cmMakefile* mf); virtual bool InitializeWindowsStore(cmMakefile* mf); + virtual bool InitializeWindowsCE(cmMakefile* mf); virtual std::string SelectWindowsPhoneToolset() const; virtual std::string SelectWindowsStoreToolset() const; + virtual std::string SelectWindowsCEToolset() const; virtual const char* GetIDEVersion() { return "11.0"; } bool UseFolderProperty(); static std::set<std::string> GetInstalledWindowsCESDKs(); diff --git a/Source/cmGlobalVisualStudio12Generator.cxx b/Source/cmGlobalVisualStudio12Generator.cxx index 29ecfe0..c784cae 100644 --- a/Source/cmGlobalVisualStudio12Generator.cxx +++ b/Source/cmGlobalVisualStudio12Generator.cxx @@ -139,6 +139,12 @@ bool cmGlobalVisualStudio12Generator::InitializeWindowsStore(cmMakefile* mf) } //---------------------------------------------------------------------------- +bool cmGlobalVisualStudio12Generator::InitializeWindowsCE(cmMakefile* mf) +{ + return cmGlobalVisualStudio11Generator::InitializeWindowsCE(mf); +} + +//---------------------------------------------------------------------------- std::string cmGlobalVisualStudio12Generator::SelectWindowsPhoneToolset() const { if(this->SystemVersion == "8.1") @@ -159,6 +165,12 @@ std::string cmGlobalVisualStudio12Generator::SelectWindowsStoreToolset() const } //---------------------------------------------------------------------------- +std::string cmGlobalVisualStudio12Generator::SelectWindowsCEToolset() const +{ + return this->cmGlobalVisualStudio11Generator::SelectWindowsCEToolset(); +} + +//---------------------------------------------------------------------------- void cmGlobalVisualStudio12Generator::WriteSLNHeader(std::ostream& fout) { fout << "Microsoft Visual Studio Solution File, Format Version 12.00\n"; diff --git a/Source/cmGlobalVisualStudio12Generator.h b/Source/cmGlobalVisualStudio12Generator.h index ec85f10..5d8c125 100644 --- a/Source/cmGlobalVisualStudio12Generator.h +++ b/Source/cmGlobalVisualStudio12Generator.h @@ -41,8 +41,10 @@ public: protected: virtual bool InitializeWindowsPhone(cmMakefile* mf); virtual bool InitializeWindowsStore(cmMakefile* mf); + virtual bool InitializeWindowsCE(cmMakefile* mf); virtual std::string SelectWindowsPhoneToolset() const; virtual std::string SelectWindowsStoreToolset() const; + virtual std::string SelectWindowsCEToolset() const; virtual const char* GetIDEVersion() { return "12.0"; } private: class Factory; -- 1.7.10.4 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers