diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2004-10-11 15:32:14 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2004-10-11 15:32:14 (GMT) |
commit | 766c093d69d24200e54d4c7eb22ebeae221ece06 (patch) | |
tree | 4f3ba4a5e7c9eee7adb1088c4e9e94e66ef7df87 /Source | |
parent | 4b7f37159314d80321025bc44950e6f623d9cdea (diff) | |
download | CMake-766c093d69d24200e54d4c7eb22ebeae221ece06.zip CMake-766c093d69d24200e54d4c7eb22ebeae221ece06.tar.gz CMake-766c093d69d24200e54d4c7eb22ebeae221ece06.tar.bz2 |
NEW: add kdevelop patch from Alexander Neundorf
Diffstat (limited to 'Source')
-rw-r--r-- | Source/CMakeLists.txt | 9 | ||||
-rw-r--r-- | Source/cmGlobalKdevelopGenerator.cxx | 52 | ||||
-rw-r--r-- | Source/cmGlobalKdevelopGenerator.h | 47 | ||||
-rw-r--r-- | Source/cmLocalKdevelopGenerator.cxx | 378 | ||||
-rw-r--r-- | Source/cmLocalKdevelopGenerator.h | 62 | ||||
-rw-r--r-- | Source/cmake.cxx | 38 |
6 files changed, 569 insertions, 17 deletions
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index fef89de..5d9b109 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -42,6 +42,7 @@ cmLocalUnixMakefileGenerator.h cmVariableWatch.h ) + # configure the .h file CONFIGURE_FILE( ${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in @@ -63,6 +64,14 @@ IF (APPLE) ) ENDIF (APPLE) +# Kdevelop only works on UNIX and not windows +IF(UNIX AND NOT WIN32) + SET(SRCS ${SRCS} + cmGlobalKdevelopGenerator.cxx + cmLocalKdevelopGenerator.cxx) +ENDIF(UNIX AND NOT WIN32) + + IF (WIN32) IF(NOT UNIX) SET(SRCS ${SRCS} diff --git a/Source/cmGlobalKdevelopGenerator.cxx b/Source/cmGlobalKdevelopGenerator.cxx new file mode 100644 index 0000000..bbf3c5b --- /dev/null +++ b/Source/cmGlobalKdevelopGenerator.cxx @@ -0,0 +1,52 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + Copyright (c) 2004 Alexander Neundorf, neundorf@kde.org. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "cmGlobalKdevelopGenerator.h" +#include "cmLocalKdevelopGenerator.h" +#include "cmMakefile.h" +#include "cmake.h" + +cmGlobalKdevelopGenerator::cmGlobalKdevelopGenerator() +{ + // This type of makefile always requires unix style paths + m_ForceUnixPaths = true; + m_FindMakeProgramFile = "CMakeUnixFindMake.cmake"; +} + +///! Create a local generator appropriate to this Global Generator +cmLocalGenerator *cmGlobalKdevelopGenerator::CreateLocalGenerator() +{ + cmLocalGenerator *lg = new cmLocalKdevelopGenerator; + lg->SetGlobalGenerator(this); + return lg; +} + +//---------------------------------------------------------------------------- +void cmGlobalKdevelopGenerator::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.name = this->GetName(); + entry.brief = "Generates KDevelop 3 project files."; + entry.full = + "A hierarchy of UNIX makefiles is generated into the build tree. Any " + "standard UNIX-style make program can build the project through the " + "default make target. A \"make install\" target is also provided." + "Additionally in each directory which features executable or library" + " targets a KDevelop 3 project file is generated.\n" + "If you change the settings using KDevelop your cmake will try its best" + "to keep your changes when regenerating the project files."; +} diff --git a/Source/cmGlobalKdevelopGenerator.h b/Source/cmGlobalKdevelopGenerator.h new file mode 100644 index 0000000..31a35a8 --- /dev/null +++ b/Source/cmGlobalKdevelopGenerator.h @@ -0,0 +1,47 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + Copyright (c) 2004 Alexander Neundorf, neundorf@kde.org. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmGlobalKdevelopGenerator_h +#define cmGlobalKdevelopGenerator_h + +#include "cmGlobalUnixMakefileGenerator.h" + +/** \class cmGlobalUnixMakefileGenerator + * \brief Write a Unix makefiles. + * + * cmGlobalUnixMakefileGenerator manages UNIX build process for a tree + */ +class cmGlobalKdevelopGenerator : public cmGlobalUnixMakefileGenerator +{ +public: + cmGlobalKdevelopGenerator(); + static cmGlobalGenerator* New() { return new cmGlobalKdevelopGenerator; } + + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalKdevelopGenerator::GetActualName();} + static const char* GetActualName() {return "KDevelop3";} + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + ///! Create a local generator appropriate to this Global Generator + virtual cmLocalGenerator *CreateLocalGenerator(); + +}; + +#endif diff --git a/Source/cmLocalKdevelopGenerator.cxx b/Source/cmLocalKdevelopGenerator.cxx new file mode 100644 index 0000000..7b87d83 --- /dev/null +++ b/Source/cmLocalKdevelopGenerator.cxx @@ -0,0 +1,378 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + Copyright (c) 2004 Alexander Neundorf, neundorf@kde.org. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmGlobalGenerator.h" +#include "cmLocalKdevelopGenerator.h" +#include "cmMakefile.h" +#include "cmSystemTools.h" +#include "cmSourceFile.h" +#include "cmMakeDepend.h" +#include "cmCacheManager.h" +#include "cmGeneratedFileStream.h" + +#include <cmsys/RegularExpression.hxx> + +#include <iostream> + + +cmLocalKdevelopGenerator::cmLocalKdevelopGenerator() + :cmLocalUnixMakefileGenerator() +{ +} + +cmLocalKdevelopGenerator::~cmLocalKdevelopGenerator() +{ +} + +#include <stdio.h> +#include <string> +#include <vector> + +void cmLocalKdevelopGenerator::Generate(bool fromTheTop) +{ + cmLocalUnixMakefileGenerator::Generate(fromTheTop); + + bool containsTargets=false; + std::string executable; + cmTargets& targets=m_Makefile->GetTargets(); + for (cmTargets::const_iterator ti = targets.begin(); ti != targets.end(); ti++) + { + switch (ti->second.GetType()) + { + case cmTarget::EXECUTABLE: + executable=ti->first; + case cmTarget::STATIC_LIBRARY: + case cmTarget::SHARED_LIBRARY: + case cmTarget::MODULE_LIBRARY: + case cmTarget::UTILITY: + containsTargets=true; + break; + case cmTarget::INSTALL_FILES: + case cmTarget::INSTALL_PROGRAMS: + default: + break; + } + } + + if (containsTargets) + { + std::string projectFileDir=m_Makefile->GetStartOutputDirectory(); + std::string filelistDir=m_Makefile->GetDefinition("PROJECT_SOURCE_DIR"); + //build the project name by taking the subdir + std::string projectName=m_Makefile->GetProjectName(); + projectName+=m_Makefile->GetStartOutputDirectory(); + cmSystemTools::ReplaceString(projectName, filelistDir.c_str(), ""); + cmSystemTools::ReplaceString(projectName, "/", "_"); + + std::string cmakeFilePattern("*/CMakeLists.txt;*.cmake;"); + + if (!this->CreateFilelistFile(filelistDir, projectName, cmakeFilePattern)) + { + return; + } + + this->CreateProjectFile(filelistDir, projectName, executable, cmakeFilePattern); + } +} + +void cmLocalKdevelopGenerator::CreateProjectFile(const std::string& dir, + const std::string& projectname, + const std::string& executable, + const std::string& cmakeFilePattern) +{ + std::string filename=m_Makefile->GetStartOutputDirectory(); + filename+="/"; + filename+=projectname+".kdevelop"; + + if (cmSystemTools::FileExists(filename.c_str())) + { + this->MergeProjectFiles(dir, filename, executable, cmakeFilePattern); + } + else + { + this->CreateNewProjectFile(dir, filename, executable, cmakeFilePattern); + } + +} + +void cmLocalKdevelopGenerator::MergeProjectFiles(const std::string& dir, + const std::string& filename, + const std::string& executable, + const std::string& cmakeFilePattern) +{ + std::ifstream oldProjectFile(filename.c_str()); + if (!oldProjectFile) + { + this->CreateNewProjectFile(dir, filename, executable, cmakeFilePattern); + return; + } + + std::string tmp; + std::vector<std::string> lines; + while (cmSystemTools::GetLineFromStream(oldProjectFile, tmp)) + { + lines.push_back(tmp); + } + oldProjectFile.close(); + + cmGeneratedFileStream tempFile(filename.c_str()); + tempFile.SetAlwaysCopy(true); + std::ostream& fout = tempFile.GetStream(); + if(!fout) + { + cmSystemTools::Error("Error can not open for write: ", filename.c_str()); + return; + } + + for (std::vector<std::string>::const_iterator it=lines.begin(); + it!=lines.end(); it++) + { + const char* line=(*it).c_str(); + + if ((strstr(line, "<projectdirectory>")!=0) + || (strstr(line, "<projectmanagement>")!=0) + || (strstr(line, "<absoluteprojectpath>")!=0) + || (strstr(line, "<buildtool>")!=0) + || (strstr(line, "<builddir>")!=0)) + { + continue; + } + + fout<<*it<<"\n"; + + if (strstr(line, "<general>")) + { + fout<<" <projectmanagement>KDevCustomProject</projectmanagement>\n"; + fout<<" <projectdirectory>"<<dir.c_str()<<"</projectdirectory>\n"; //this one is important + fout<<" <absoluteprojectpath>true</absoluteprojectpath>\n"; //and this one + } + + if (strstr(line, "<build>")) + { + fout<<" <buildtool>make</buildtool>\n"; //this one is important + fout<<" <builddir>"<<m_Makefile->GetStartOutputDirectory()<<"</builddir>\n"; //and this one + + } + } +} + +void cmLocalKdevelopGenerator::CreateNewProjectFile(const std::string& dir, const std::string& filename, + const std::string& executable, const std::string& cmakeFilePattern) +{ + + cmGeneratedFileStream tempFile(filename.c_str()); + tempFile.SetAlwaysCopy(true); + + std::ostream& fout = tempFile.GetStream(); + if(!fout) + { + cmSystemTools::Error("Error can not open for write: ", filename.c_str()); + return; + } + + fout<<"<?xml version = '1.0'?>\n"; + fout<<"<kdevelop>\n"; + fout<<" <general>\n"; + fout<<" <author></author>\n"; + fout<<" <email></email>\n"; + fout<<" <version>$VERSION$</version>\n"; + fout<<" <projectmanagement>KDevCustomProject</projectmanagement>\n"; + fout<<" <primarylanguage>C++</primarylanguage>\n"; + fout<<" <ignoreparts/>\n"; + fout<<" <projectdirectory>"<<dir.c_str()<<"</projectdirectory>\n"; //this one is important + fout<<" <absoluteprojectpath>true</absoluteprojectpath>\n"; //and this one + fout<<" <secondaryLanguages>\n"; + fout<<" <language>C</language>\n"; + fout<<" </secondaryLanguages>\n"; + fout<<" </general>\n"; + fout<<" <kdevcustomproject>\n"; + fout<<" <run>\n"; + fout<<" <mainprogram>"<<m_Makefile->GetStartOutputDirectory()<<"/"<<executable.c_str()<<"</mainprogram>\n"; + fout<<" <directoryradio>custom</directoryradio>\n"; + fout<<" <customdirectory>/</customdirectory>\n"; + fout<<" <programargs></programargs>\n"; + fout<<" <terminal>false</terminal>\n"; + fout<<" <autocompile>true</autocompile>\n"; + fout<<" <envvars/>\n"; + fout<<" </run>\n"; + fout<<" <build>\n"; + fout<<" <buildtool>make</buildtool>\n"; //this one is important + fout<<" <builddir>"<<m_Makefile->GetStartOutputDirectory()<<"</builddir>\n"; //and this one + fout<<" </build>\n"; + fout<<" <make>\n"; + fout<<" <abortonerror>false</abortonerror>\n"; + fout<<" <numberofjobs>1</numberofjobs>\n"; + fout<<" <dontact>false</dontact>\n"; + fout<<" <makebin></makebin>\n"; + fout<<" <selectedenvironment>default</selectedenvironment>\n"; + fout<<" <environments>\n"; + fout<<" <default/>\n"; + fout<<" </environments>\n"; + fout<<" </make>\n"; + fout<<" </kdevcustomproject>\n"; + fout<<" <kdevfileCreate>\n"; + fout<<" <filetypes/>\n"; + fout<<" <useglobaltypes>\n"; + fout<<" <type ext=\"ui\" />\n"; + fout<<" <type ext=\"cpp\" />\n"; + fout<<" <type ext=\"h\" />\n"; + fout<<" </useglobaltypes>\n"; + fout<<" </kdevfilecreate>\n"; + fout<<" <kdevdoctreeview>\n"; + fout<<" <projectdoc>\n"; + fout<<" <userdocDir>html/</userdocDir>\n"; + fout<<" <apidocDir>html/</apidocDir>\n"; + fout<<" </projectdoc>\n"; + fout<<" <ignoreqt_xml/>\n"; + fout<<" <ignoredoxygen/>\n"; + fout<<" <ignorekdocs/>\n"; + fout<<" <ignoretocs/>\n"; + fout<<" <ignoredevhelp/>\n"; + fout<<" </kdevdoctreeview>\n"; + fout<<" <cppsupportpart>\n"; + fout<<" <filetemplates>\n"; + fout<<" <interfacesuffix>.h</interfacesuffix>\n"; + fout<<" <implementationsuffix>.cpp</implementationsuffix>\n"; + fout<<" </filetemplates>\n"; + fout<<" </cppsupportpart>\n"; + fout<<" <kdevcppsupport>\n"; + fout<<" <codecompletion>\n"; + fout<<" <includeGlobalFunctions>true</includeGlobalFunctions>\n"; + fout<<" <includeTypes>true</includeTypes>\n"; + fout<<" <includeEnums>true</includeEnums>\n"; + fout<<" <includeTypedefs>false</includeTypedefs>\n"; + fout<<" <automaticCodeCompletion>true</automaticCodeCompletion>\n"; + fout<<" <automaticArgumentsHint>true</automaticArgumentsHint>\n"; + fout<<" <automaticHeaderCompletion>true</automaticHeaderCompletion>\n"; + fout<<" <codeCompletionDelay>250</codeCompletionDelay>\n"; + fout<<" <argumentsHintDelay>400</argumentsHintDelay>\n"; + fout<<" <headerCompletionDelay>250</headerCompletionDelay>\n"; + fout<<" </codecompletion>\n"; + fout<<" <references/>\n"; + fout<<" </kdevcppsupport>\n"; + fout<<" <kdevfileview>\n"; + fout<<" <groups>\n"; + fout<<" <group pattern=\""<<cmakeFilePattern.c_str()<<"\" name=\"CMake\" />\n"; + fout<<" <group pattern=\"*.h;*.hxx\" name=\"Header\" />\n"; + fout<<" <group pattern=\"*.cpp;*.c;*.C;*.cxx\" name=\"Sources\" />\n"; + fout<<" <group pattern=\"*.ui\" name=\"Qt Designer files\" />\n"; + fout<<" <hidenonprojectfiles>true</hidenonprojectfiles>\n"; + fout<<" </groups>\n"; + fout<<" <tree>\n"; + fout<<" <hidepatterns>*.o,*.lo,CVS,*~,cmake*</hidepatterns>\n"; + fout<<" <hidenonprojectfiles>true</hidenonprojectfiles>\n"; + fout<<" </tree>\n"; + fout<<" </kdevfileview>\n"; + fout<<"</kdevelop>\n"; +} + +bool cmLocalKdevelopGenerator::CreateFilelistFile(const std::string& _dir, + const std::string& projectname, + std::string& cmakeFilePattern) +{ + std::string filelistDir=_dir+"/"; + std::string filename=filelistDir+projectname+".kdevelop.filelist"; + + std::set<cmStdString> files; + + //get all cmake files + std::string tmp; + const std::vector<std::string>& listFiles=m_Makefile->GetListFiles(); + for (std::vector<std::string>::const_iterator it=listFiles.begin(); it!=listFiles.end(); it++) + { + tmp=*it; + cmSystemTools::ReplaceString(tmp, filelistDir.c_str(), ""); + if (tmp[0]!='/') + { + files.insert(tmp); + tmp=cmSystemTools::GetFilenameName(tmp); + //add all files which dont match the default */CMakeLists.txt;*cmake; to the file pattern + if ((tmp!="CMakeLists.txt") + && (strstr(tmp.c_str(), ".cmake")==0)) + { + cmakeFilePattern+="*/"+tmp+";"; + } + } + } + + //get all sources + cmTargets& targets=m_Makefile->GetTargets(); + for (cmTargets::const_iterator ti = targets.begin(); ti != targets.end(); ti++) + { + const std::vector<std::string>& sources=ti->second.GetSourceLists(); + for (std::vector<std::string>::const_iterator it=sources.begin(); it!=sources.end(); it++) + { + tmp=*it; + + if (tmp[0]!='/') //no absolute path + { + tmp=std::string(m_Makefile->GetDefinition("CMAKE_CURRENT_SOURCE_DIR"))+"/"+tmp; + } + + tmp=cmSystemTools::CollapseFullPath(tmp.c_str()); + cmSystemTools::ReplaceString(tmp, filelistDir.c_str(), ""); + if (tmp[0]=='/') + { + std::string errorMessage("In order to get working KDevelop project files, you have to call " + "PROJECT() in a directory which is a parent directory of all source files. The source file "); + errorMessage+=tmp+" is not located beneath your current project directory "+filelistDir+" ."; + cmSystemTools::Error(errorMessage.c_str()); + return false; + } + files.insert(tmp); + } + } + + + //check if the output file already exists and read it + //insert all files which exist into the set of files + std::ifstream oldFilelist(filename.c_str()); + if (oldFilelist) + { + while (cmSystemTools::GetLineFromStream(oldFilelist, tmp)) + { + if (tmp[0]=='/') + { + continue; + } + std::string completePath=filelistDir+tmp; + if (cmSystemTools::FileExists(completePath.c_str())) + { + files.insert(tmp); + } + } + oldFilelist.close(); + } + + + cmGeneratedFileStream tempFile(filename.c_str()); + tempFile.SetAlwaysCopy(true); + std::ostream& fout = tempFile.GetStream(); + if(!fout) + { + cmSystemTools::Error("Error can not open for write: ", filename.c_str()); + return false; + } + + for (std::set<cmStdString>::const_iterator it=files.begin(); it!=files.end(); it++) + { + fout<<*it<<"\n"; + } + return true; +} + + diff --git a/Source/cmLocalKdevelopGenerator.h b/Source/cmLocalKdevelopGenerator.h new file mode 100644 index 0000000..e6d59e2 --- /dev/null +++ b/Source/cmLocalKdevelopGenerator.h @@ -0,0 +1,62 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + Copyright (c) 2004 Alexander Neundorf, neundorf@kde.org. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmLocalKdevelopGenerator_h +#define cmLocalKdevelopGenerator_h + +#include "cmLocalUnixMakefileGenerator.h" + +class cmDependInformation; +class cmMakeDepend; +class cmTarget; +class cmSourceFile; + +/** \class cmLocalKdevelopGenerator + * \brief Write a LocalUnix makefiles. + * + * cmLocalKdevelopGenerator produces a LocalUnix makefile from its + * member m_Makefile. + */ +class cmLocalKdevelopGenerator : public cmLocalUnixMakefileGenerator +{ +public: + ///! Set cache only and recurse to false by default. + cmLocalKdevelopGenerator(); + + virtual ~cmLocalKdevelopGenerator(); + + /** + * Generate the makefile for this directory. fromTheTop indicates if this + * is being invoked as part of a global Generate or specific to this + * directory. The difference is that when done from the Top we might skip + * some steps to save time, such as dependency generation for the + * makefiles. This is done by a direct invocation from make. + */ + virtual void Generate(bool fromTheTop); +protected: + ///Create the foo.kdevelop file. This one calls MergeProjectFiles() if it already exists, otherwise createNewProjectFile() + void CreateProjectFile(const std::string& dir, const std::string& projectname, const std::string& executable, const std::string& cmakeFilePattern); + /// Create the foo.kdevelop.filelist file, return false if it doesn't succeed + bool CreateFilelistFile(const std::string& dir, const std::string& projectname, std::string& cmakeFilePattern); + ///Reads the old foo.kdevelop line by line and only replaces the "important" lines + void MergeProjectFiles(const std::string& dir, const std::string& filename, const std::string& executable, const std::string& cmakeFilePattern); + ///Creates a new foo.kdevelop file + void CreateNewProjectFile(const std::string& dir, const std::string& filename, const std::string& executable, const std::string& cmakeFilePattern); + +}; + +#endif diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 340766e..b365353 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -25,29 +25,29 @@ // include the generator #if defined(_WIN32) && !defined(__CYGWIN__) -#include "cmGlobalVisualStudio6Generator.h" -#if !defined(__MINGW32__) -#include "cmGlobalVisualStudio7Generator.h" -#include "cmGlobalVisualStudio71Generator.h" -#include "cmGlobalVisualStudio8Generator.h" -#endif -#include "cmGlobalBorlandMakefileGenerator.h" -#include "cmGlobalNMakeMakefileGenerator.h" -#include "cmGlobalUnixMakefileGenerator.h" -#include "cmWin32ProcessExecution.h" +# include "cmGlobalVisualStudio6Generator.h" +# if !defined(__MINGW32__) +# include "cmGlobalVisualStudio7Generator.h" +# include "cmGlobalVisualStudio71Generator.h" +# include "cmGlobalVisualStudio8Generator.h" +# endif +# include "cmGlobalBorlandMakefileGenerator.h" +# include "cmGlobalNMakeMakefileGenerator.h" +# include "cmWin32ProcessExecution.h" #else -#include "cmGlobalUnixMakefileGenerator.h" #endif +#include "cmGlobalUnixMakefileGenerator.h" +#include "cmGlobalKdevelopGenerator.h" #include <stdlib.h> // required for atoi #ifdef __APPLE__ -#include <sys/types.h> -#include <sys/time.h> -#include <sys/resource.h> -#if defined(CMAKE_BUILD_WITH_CMAKE) -#include "cmGlobalCodeWarriorGenerator.h" -#endif +# include <sys/types.h> +# include <sys/time.h> +# include <sys/resource.h> +# if defined(CMAKE_BUILD_WITH_CMAKE) +# include "cmGlobalCodeWarriorGenerator.h" +# endif #endif #include <memory> // auto_ptr @@ -1415,6 +1415,10 @@ void cmake::AddDefaultGenerators() #endif m_Generators[cmGlobalUnixMakefileGenerator::GetActualName()] = &cmGlobalUnixMakefileGenerator::New; +#if !defined(_WIN32) + m_Generators[cmGlobalKdevelopGenerator::GetActualName()] = + &cmGlobalKdevelopGenerator::New; +#endif } int cmake::LoadCache() |