Merge topic 'unicode-vs-projects'
ee8cef87
Encoding: If configured, write Visual Studio project files as UTF-8.91fd99b8
Encoding: Provide option to configure CMake to use UTF-8 encoding.
This commit is contained in:
commit
5a21cbc96b
|
@ -36,6 +36,13 @@ if("${CMake_SOURCE_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
|
|||
endmacro()
|
||||
endif()
|
||||
|
||||
# option to set the internal encoding of CMake to UTF-8
|
||||
option(CMAKE_ENCODING_UTF8 "Use UTF-8 encoding internally (experimental)." OFF)
|
||||
mark_as_advanced(CMAKE_ENCODING_UTF8)
|
||||
if(CMAKE_ENCODING_UTF8)
|
||||
set(KWSYS_ENCODING_DEFAULT_CODEPAGE CP_UTF8)
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# a macro to deal with system libraries, implemented as a macro
|
||||
# simply to improve readability of the main script
|
||||
|
|
|
@ -24,6 +24,11 @@ endif()
|
|||
|
||||
set(EXECUTABLE_OUTPUT_PATH ${CMake_BIN_DIR})
|
||||
|
||||
# ensure Unicode friendly APIs are used on Windows
|
||||
if(WIN32)
|
||||
add_definitions(-DUNICODE -D_UNICODE)
|
||||
endif()
|
||||
|
||||
# configure the .h file
|
||||
configure_file(
|
||||
"${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in"
|
||||
|
|
|
@ -59,11 +59,6 @@ else()
|
|||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
if(WIN32 AND KWSYS_ENCODING_DEFAULT_CODEPAGE MATCHES CP_UTF8)
|
||||
add_definitions(-DKWSYS_CP_UTF8)
|
||||
endif()
|
||||
|
||||
set(SRCS
|
||||
AddCacheEntry.cxx
|
||||
AddCacheEntry.h
|
||||
|
|
|
@ -79,7 +79,7 @@ int main(int argc, char** argv)
|
|||
|
||||
QApplication app(argc, argv);
|
||||
|
||||
#if defined(KWSYS_CP_UTF8)
|
||||
#if defined(CMAKE_ENCODING_UTF8)
|
||||
QTextCodec* utf8_codec = QTextCodec::codecForName("UTF-8");
|
||||
QTextCodec::setCodecForLocale(utf8_codec);
|
||||
#endif
|
||||
|
|
|
@ -16,4 +16,5 @@
|
|||
#cmakedefine HAVE_ENVIRON_NOT_REQUIRE_PROTOTYPE
|
||||
#cmakedefine HAVE_UNSETENV
|
||||
#cmakedefine CMAKE_USE_ELF_PARSER
|
||||
#cmakedefine CMAKE_ENCODING_UTF8
|
||||
#define CMAKE_DATA_DIR "/@CMAKE_DATA_DIR@"
|
||||
|
|
|
@ -873,7 +873,8 @@ cmGlobalVisualStudio7Generator::WriteUtilityDepend(cmTarget const* target)
|
|||
std::string guid = this->GetGUID(pname.c_str());
|
||||
|
||||
fout <<
|
||||
"<?xml version=\"1.0\" encoding = \"Windows-1252\"?>\n"
|
||||
"<?xml version=\"1.0\" encoding = \""
|
||||
<< this->Encoding() << "\"?>\n"
|
||||
"<VisualStudioProject\n"
|
||||
"\tProjectType=\"Visual C++\"\n"
|
||||
"\tVersion=\"" << this->GetIDEVersion() << "0\"\n"
|
||||
|
@ -1038,3 +1039,14 @@ cmIDEFlagTable const* cmGlobalVisualStudio7Generator::GetExtraFlagTableVS7()
|
|||
{
|
||||
return cmVS7ExtraFlagTable;
|
||||
}
|
||||
|
||||
std::string cmGlobalVisualStudio7Generator::Encoding()
|
||||
{
|
||||
std::ostringstream encoding;
|
||||
#ifdef CMAKE_ENCODING_UTF8
|
||||
encoding << "UTF-8";
|
||||
#else
|
||||
encoding << "Windows-1252";
|
||||
#endif
|
||||
return encoding.str();
|
||||
}
|
||||
|
|
|
@ -109,6 +109,9 @@ public:
|
|||
|
||||
virtual void FindMakeProgram(cmMakefile*);
|
||||
|
||||
// Encoding for Visual Studio files
|
||||
virtual std::string Encoding();
|
||||
|
||||
protected:
|
||||
virtual const char* GetIDEVersion() { return "7.0"; }
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
/*============================================================================
|
||||
CMake - Cross Platform Makefile Generator
|
||||
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
|
||||
|
|
|
@ -1975,7 +1975,8 @@ cmLocalVisualStudio7Generator
|
|||
|
||||
cmGlobalVisualStudio7Generator* gg =
|
||||
static_cast<cmGlobalVisualStudio7Generator *>(this->GlobalGenerator);
|
||||
fout << "<?xml version=\"1.0\" encoding = \"Windows-1252\"?>\n"
|
||||
fout << "<?xml version=\"1.0\" encoding = \""
|
||||
<< gg->Encoding() << "\"?>\n"
|
||||
<< "<VisualStudioProject\n"
|
||||
<< "\tProjectCreator=\"Intel Fortran\"\n"
|
||||
<< "\tVersion=\"" << gg->GetIntelProjectVersion() << "\"\n";
|
||||
|
@ -2038,7 +2039,12 @@ cmLocalVisualStudio7Generator::WriteProjectStart(std::ostream& fout,
|
|||
this->WriteProjectStartFortran(fout, libName, target);
|
||||
return;
|
||||
}
|
||||
fout << "<?xml version=\"1.0\" encoding = \"Windows-1252\"?>\n"
|
||||
|
||||
cmGlobalVisualStudio7Generator* gg =
|
||||
static_cast<cmGlobalVisualStudio7Generator *>(this->GlobalGenerator);
|
||||
|
||||
fout << "<?xml version=\"1.0\" encoding = \""
|
||||
<< gg->Encoding() << "\"?>\n"
|
||||
<< "<VisualStudioProject\n"
|
||||
<< "\tProjectType=\"Visual C++\"\n";
|
||||
if(this->Version == VS71)
|
||||
|
@ -2059,8 +2065,6 @@ cmLocalVisualStudio7Generator::WriteProjectStart(std::ostream& fout,
|
|||
{
|
||||
keyword = "Win32Proj";
|
||||
}
|
||||
cmGlobalVisualStudio7Generator* gg =
|
||||
static_cast<cmGlobalVisualStudio7Generator *>(this->GlobalGenerator);
|
||||
fout << "\tName=\"" << projLabel << "\"\n";
|
||||
if(this->Version >= VS8)
|
||||
{
|
||||
|
|
|
@ -222,7 +222,8 @@ void cmVisualStudio10TargetGenerator::Generate()
|
|||
//get the tools version to use
|
||||
const std::string toolsVer(this->GlobalGenerator->GetToolsVersion());
|
||||
std::string project_defaults=
|
||||
"<?xml version=\"1.0\" encoding=\"Windows-1252\"?>\n";
|
||||
"<?xml version=\"1.0\" encoding=\"" +
|
||||
this->GlobalGenerator->Encoding() + "\"?>\n";
|
||||
project_defaults.append("<Project DefaultTargets=\"Build\" ToolsVersion=\"");
|
||||
project_defaults.append(toolsVer +"\" ");
|
||||
project_defaults.append(
|
||||
|
@ -732,7 +733,8 @@ void cmVisualStudio10TargetGenerator::WriteGroups()
|
|||
//get the tools version to use
|
||||
const std::string toolsVer(this->GlobalGenerator->GetToolsVersion());
|
||||
std::string project_defaults=
|
||||
"<?xml version=\"1.0\" encoding=\"Windows-1252\"?>\n";
|
||||
"<?xml version=\"1.0\" encoding=\"" +
|
||||
this->GlobalGenerator->Encoding() + "\"?>\n";
|
||||
project_defaults.append("<Project ToolsVersion=\"");
|
||||
project_defaults.append(toolsVer +"\" ");
|
||||
project_defaults.append(
|
||||
|
|
Loading…
Reference in New Issue