diff options
author | Brad King <brad.king@kitware.com> | 2010-12-14 19:38:55 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2010-12-14 19:38:55 (GMT) |
commit | 03c4623fb4605a347acc20a1914582e794dd474d (patch) | |
tree | baeb57890186c7dca76a7cd55e4db1dfa948b571 | |
parent | 5eed07e2d812376067191d7ae444125d491a63df (diff) | |
parent | 27ee50a7d81b4d5b975b5015897f88bbd6318118 (diff) | |
download | CMake-03c4623fb4605a347acc20a1914582e794dd474d.zip CMake-03c4623fb4605a347acc20a1914582e794dd474d.tar.gz CMake-03c4623fb4605a347acc20a1914582e794dd474d.tar.bz2 |
Merge topic 'ParallelEclipseMakefiles2'
27ee50a Add ECLIPSE_CDT4_GENERATE_SOURCE_PROJECT as a ADVANCED cache variable (#9631)
50d21d4 Add cache var CMAKE_ECLIPSE_MAKE_ARGUMENTS when using the Eclipse generator
-rw-r--r-- | Modules/CMakeFindEclipseCDT4.cmake | 6 | ||||
-rw-r--r-- | Source/cmExtraEclipseCDT4Generator.cxx | 19 | ||||
-rw-r--r-- | Source/cmExtraEclipseCDT4Generator.h | 1 |
3 files changed, 18 insertions, 8 deletions
diff --git a/Modules/CMakeFindEclipseCDT4.cmake b/Modules/CMakeFindEclipseCDT4.cmake index 836e4c9..fbcdc98 100644 --- a/Modules/CMakeFindEclipseCDT4.cmake +++ b/Modules/CMakeFindEclipseCDT4.cmake @@ -17,6 +17,12 @@ FIND_PROGRAM(CMAKE_ECLIPSE_EXECUTABLE NAMES eclipse DOC "The Eclipse executable") +# This variable is used by the Eclipse generator and appended to the make invocation commands. +SET(CMAKE_ECLIPSE_MAKE_ARGUMENTS "" CACHE STRING "Additional command line arguments when Eclipse invokes make. Enter e.g. -j<some_number> to get parallel builds") + +# This variable is used by the Eclipse generator in out-of-source builds only. +SET(ECLIPSE_CDT4_GENERATE_SOURCE_PROJECT FALSE CACHE BOOL "If enabled, CMake will generate a source project for Eclipse in CMAKE_SOURCE_DIR") +MARK_AS_ADVANCED(ECLIPSE_CDT4_GENERATE_SOURCE_PROJECT) # The Eclipse generator needs to know the standard include path # so that Eclipse ca find the headers at runtime and parsing etc. works better diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx index 8f89b5e..502fefa 100644 --- a/Source/cmExtraEclipseCDT4Generator.cxx +++ b/Source/cmExtraEclipseCDT4Generator.cxx @@ -734,6 +734,8 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const ; emmited.clear(); const std::string make = mf->GetRequiredDefinition("CMAKE_MAKE_PROGRAM"); + const std::string makeArgs = mf->GetSafeDefinition( + "CMAKE_ECLIPSE_MAKE_ARGUMENTS"); cmGlobalGenerator* generator = const_cast<cmGlobalGenerator*>(this->GlobalGenerator); @@ -794,7 +796,7 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const } if (insertTarget) { - this->AppendTarget(fout, ti->first, make, subdir, ": "); + this->AppendTarget(fout, ti->first, make, makeArgs, subdir, ": "); } } break; @@ -809,7 +811,7 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const break; } - this->AppendTarget(fout, ti->first, make, subdir, ": "); + this->AppendTarget(fout, ti->first, make, makeArgs, subdir, ": "); break; case cmTarget::EXECUTABLE: case cmTarget::STATIC_LIBRARY: @@ -818,10 +820,10 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const { const char* prefix = (ti->second.GetType()==cmTarget::EXECUTABLE ? "[exe] " : "[lib] "); - this->AppendTarget(fout, ti->first, make, subdir, prefix); + this->AppendTarget(fout, ti->first, make, makeArgs, subdir, prefix); std::string fastTarget = ti->first; fastTarget += "/fast"; - this->AppendTarget(fout, fastTarget, make, subdir, prefix); + this->AppendTarget(fout, fastTarget, make, makeArgs, subdir, prefix); } break; // ignore these: @@ -836,11 +838,11 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const // insert the all and clean targets in every subdir if (!allTarget.empty()) { - this->AppendTarget(fout, allTarget, make, subdir, ": "); + this->AppendTarget(fout, allTarget, make, makeArgs, subdir, ": "); } if (!cleanTarget.empty()) { - this->AppendTarget(fout, cleanTarget, make, subdir, ": "); + this->AppendTarget(fout, cleanTarget, make, makeArgs, subdir, ": "); } //insert rules for compiling, preprocessing and assembling individual files @@ -860,7 +862,7 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const { prefix = "[pre] "; } - this->AppendTarget(fout, *fit, make, subdir, prefix); + this->AppendTarget(fout, *fit, make, makeArgs, subdir, prefix); } } @@ -993,6 +995,7 @@ void cmExtraEclipseCDT4Generator void cmExtraEclipseCDT4Generator::AppendTarget(cmGeneratedFileStream& fout, const std::string& target, const std::string& make, + const std::string& makeArgs, const std::string& path, const char* prefix) { @@ -1003,7 +1006,7 @@ void cmExtraEclipseCDT4Generator::AppendTarget(cmGeneratedFileStream& fout, "<buildCommand>" << cmExtraEclipseCDT4Generator::GetEclipsePath(make) << "</buildCommand>\n" - "<buildArguments/>\n" + "<buildArguments>" << makeArgs << "</buildArguments>\n" "<buildTarget>" << target << "</buildTarget>\n" "<stopOnError>true</stopOnError>\n" "<useDefaultCommand>false</useDefaultCommand>\n" diff --git a/Source/cmExtraEclipseCDT4Generator.h b/Source/cmExtraEclipseCDT4Generator.h index 2ad599d..99e69c4 100644 --- a/Source/cmExtraEclipseCDT4Generator.h +++ b/Source/cmExtraEclipseCDT4Generator.h @@ -71,6 +71,7 @@ private: static void AppendTarget (cmGeneratedFileStream& fout, const std::string& target, const std::string& make, + const std::string& makeArguments, const std::string& path, const char* prefix = ""); static void AppendScannerProfile (cmGeneratedFileStream& fout, |