diff options
author | Tobias R. Henle <tobias@page23.de> | 2018-01-19 21:41:54 (GMT) |
---|---|---|
committer | Tobias R. Henle <tobias@page23.de> | 2018-01-19 21:41:54 (GMT) |
commit | 51caac6958c9adb31dae4c2a61bd0bfce9e45a23 (patch) | |
tree | ef44709ef967c3126227f646a1c3838d269b6beb /Source/cmExtraCodeLiteGenerator.cxx | |
parent | 927c6035745bb732712463af8e3d6619c5b6b1f4 (diff) | |
download | CMake-51caac6958c9adb31dae4c2a61bd0bfce9e45a23.zip CMake-51caac6958c9adb31dae4c2a61bd0bfce9e45a23.tar.gz CMake-51caac6958c9adb31dae4c2a61bd0bfce9e45a23.tar.bz2 |
CodeLite: Better support for Fortran and Windows
Fortran source files are added to the src folder of CodeLite projects and
the "Compile Single File" command uses "$(CurrentFileFullName)"
instead of "$(CurrentFileName)" with the correct filename extension
for object files on windows now.
Diffstat (limited to 'Source/cmExtraCodeLiteGenerator.cxx')
-rw-r--r-- | Source/cmExtraCodeLiteGenerator.cxx | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/Source/cmExtraCodeLiteGenerator.cxx b/Source/cmExtraCodeLiteGenerator.cxx index 4958007..fad0723 100644 --- a/Source/cmExtraCodeLiteGenerator.cxx +++ b/Source/cmExtraCodeLiteGenerator.cxx @@ -198,8 +198,6 @@ std::string cmExtraCodeLiteGenerator::CollectSourceFiles( std::map<std::string, cmSourceFile*>& cFiles, std::set<std::string>& otherFiles) { - auto cm = this->GlobalGenerator->GetCMakeInstance(); - std::string projectType; switch (gt->GetType()) { case cmStateEnums::EXECUTABLE: { @@ -227,19 +225,18 @@ std::string cmExtraCodeLiteGenerator::CollectSourceFiles( gt->GetSourceFiles(sources, makefile->GetSafeDefinition("CMAKE_BUILD_TYPE")); for (cmSourceFile* s : sources) { - // check whether it is a C/C++/CUDA implementation file - bool isCFile = false; - std::string lang = s->GetLanguage(); - if (lang == "C" || lang == "CXX" || lang == "CUDA") { - std::string const& srcext = s->GetExtension(); - isCFile = cm->IsSourceExtension(srcext); - } - + // check whether it is a source or a include file // then put it accordingly into one of the two containers - if (isCFile) { - cFiles[s->GetFullPath()] = s; - } else { - otherFiles.insert(s->GetFullPath()); + switch (cmSystemTools::GetFileFormat(s->GetExtension().c_str())) { + case cmSystemTools::C_FILE_FORMAT: + case cmSystemTools::CXX_FILE_FORMAT: + case cmSystemTools::CUDA_FILE_FORMAT: + case cmSystemTools::FORTRAN_FILE_FORMAT: { + cFiles[s->GetFullPath()] = s; + } break; + default: { + otherFiles.insert(s->GetFullPath()); + } } } } @@ -679,7 +676,11 @@ std::string cmExtraCodeLiteGenerator::GetSingleFileBuildCommand( std::string generator = mf->GetSafeDefinition("CMAKE_GENERATOR"); if (generator == "Unix Makefiles" || generator == "MinGW Makefiles") { std::ostringstream ss; - ss << make << " -f$(ProjectPath)/Makefile $(CurrentFileName).cpp.o"; +#if defined(_WIN32) + ss << make << " -f$(ProjectPath)/Makefile -B $(CurrentFileFullName).obj"; +#else + ss << make << " -f$(ProjectPath)/Makefile -B $(CurrentFileFullName).o"; +#endif buildCommand = ss.str(); } return buildCommand; |