This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, next has been updated via 4cbf56e98c7c3ad3365350bd7ef9314263bb8862 (commit) via 84ccd4f7461ac2c2ee471a4d77f3e184c676c276 (commit) from 564c9c7b888fdfb156ed5b71de6172a032720c81 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4cbf56e98c7c3ad3365350bd7ef9314263bb8862 commit 4cbf56e98c7c3ad3365350bd7ef9314263bb8862 Merge: 564c9c7 84ccd4f Author: Alexander Neundorf <neund...@kde.org> AuthorDate: Tue Feb 23 16:45:28 2016 -0500 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Tue Feb 23 16:45:28 2016 -0500 Merge topic 'CodeBlocksParallelFlag' into next 84ccd4f7 CodeBlocks: generate parallel project files (make -j) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=84ccd4f7461ac2c2ee471a4d77f3e184c676c276 commit 84ccd4f7461ac2c2ee471a4d77f3e184c676c276 Author: Alex Neundorf <neund...@kde.org> AuthorDate: Tue Feb 23 22:37:44 2016 +0100 Commit: Alex Neundorf <neund...@kde.org> CommitDate: Tue Feb 23 22:37:44 2016 +0100 CodeBlocks: generate parallel project files (make -j) This is done the same way as for Eclipse: cmake tries to determine the number of CPUs, and then adds the respective -jN to the make invocations in the project file. Alex diff --git a/Modules/CMakeFindCodeBlocks.cmake b/Modules/CMakeFindCodeBlocks.cmake index f8d8d59..bf85ea0 100644 --- a/Modules/CMakeFindCodeBlocks.cmake +++ b/Modules/CMakeFindCodeBlocks.cmake @@ -23,3 +23,18 @@ endif() # Determine builtin macros and include dirs: include(${CMAKE_CURRENT_LIST_DIR}/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake) + +# Try to find out how many CPUs we have and set the -j argument for make accordingly +set(_CMAKE_CODEBLOCKS_INITIAL_MAKE_ARGS "") + +include(ProcessorCount) +processorcount(_CMAKE_CODEBLOCKS_PROCESSOR_COUNT) + +# Only set -j if we are under UNIX and if the make-tool used actually has "make" in the name +# (we may also get here in the future e.g. for ninja) +if("${_CMAKE_CODEBLOCKS_PROCESSOR_COUNT}" GREATER 1 AND CMAKE_HOST_UNIX AND "${CMAKE_MAKE_PROGRAM}" MATCHES make) + set(_CMAKE_CODEBLOCKS_INITIAL_MAKE_ARGS "-j${_CMAKE_CODEBLOCKS_PROCESSOR_COUNT}") +endif() + +# This variable is used by the CodeBlocks generator and appended to the make invocation commands. +set(CMAKE_CODEBLOCKS_MAKE_ARGUMENTS "${_CMAKE_CODEBLOCKS_INITIAL_MAKE_ARGS}" CACHE STRING "Additional command line arguments when CodeBlocks invokes make. Enter e.g. -j<some_number> to get parallel builds") diff --git a/Source/cmExtraCodeBlocksGenerator.cxx b/Source/cmExtraCodeBlocksGenerator.cxx index 9348ef2..19f99ba 100644 --- a/Source/cmExtraCodeBlocksGenerator.cxx +++ b/Source/cmExtraCodeBlocksGenerator.cxx @@ -300,6 +300,8 @@ void cmExtraCodeBlocksGenerator // figure out the compiler std::string compiler = this->GetCBCompilerId(mf); std::string make = mf->GetRequiredDefinition("CMAKE_MAKE_PROGRAM"); + const std::string makeArgs = mf->GetSafeDefinition( + "CMAKE_CODEBLOCKS_MAKE_ARGUMENTS"); fout<<"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>\n" "<CodeBlocks_project_file>\n" @@ -311,7 +313,8 @@ void cmExtraCodeBlocksGenerator " "<<virtualFolders<<"\n" " <Build>\n"; - this->AppendTarget(fout, "all", 0, make.c_str(), lgs[0], compiler.c_str()); + this->AppendTarget(fout, "all", 0, make.c_str(), lgs[0], compiler.c_str(), + makeArgs); // add all executable and library targets and some of the GLOBAL // and UTILITY targets @@ -333,7 +336,8 @@ void cmExtraCodeBlocksGenerator (*lg)->GetBinaryDirectory())==0) { this->AppendTarget(fout, targetName, 0, - make.c_str(), *lg, compiler.c_str()); + make.c_str(), *lg, compiler.c_str(), + makeArgs); } } break; @@ -350,7 +354,7 @@ void cmExtraCodeBlocksGenerator } this->AppendTarget(fout, targetName, 0, - make.c_str(), *lg, compiler.c_str()); + make.c_str(), *lg, compiler.c_str(),makeArgs); break; case cmState::EXECUTABLE: case cmState::STATIC_LIBRARY: @@ -360,11 +364,11 @@ void cmExtraCodeBlocksGenerator { cmGeneratorTarget* gt = *ti; this->AppendTarget(fout, targetName, gt, - make.c_str(), *lg, compiler.c_str()); + make.c_str(), *lg, compiler.c_str(), makeArgs); std::string fastTarget = targetName; fastTarget += "/fast"; this->AppendTarget(fout, fastTarget, gt, - make.c_str(), *lg, compiler.c_str()); + make.c_str(), *lg, compiler.c_str(), makeArgs); } break; default: @@ -555,7 +559,8 @@ void cmExtraCodeBlocksGenerator::AppendTarget(cmGeneratedFileStream& fout, cmGeneratorTarget* target, const char* make, const cmLocalGenerator* lg, - const char* compiler) + const char* compiler, + const std::string& makeFlags) { cmMakefile const* makefile = lg->GetMakefile(); std::string makefileName = lg->GetCurrentBinaryDirectory(); @@ -663,16 +668,18 @@ void cmExtraCodeBlocksGenerator::AppendTarget(cmGeneratedFileStream& fout, fout<<" <MakeCommands>\n" " <Build command=\"" - << this->BuildMakeCommand(make, makefileName.c_str(), targetName) + << this->BuildMakeCommand(make, makefileName.c_str(), targetName, + makeFlags) << "\" />\n" " <CompileFile command=\"" - << this->BuildMakeCommand(make, makefileName.c_str(),""$file"") + << this->BuildMakeCommand(make, makefileName.c_str(),""$file"", + makeFlags) << "\" />\n" " <Clean command=\"" - << this->BuildMakeCommand(make, makefileName.c_str(), "clean") + << this->BuildMakeCommand(make, makefileName.c_str(), "clean", makeFlags) << "\" />\n" " <DistClean command=\"" - << this->BuildMakeCommand(make, makefileName.c_str(), "clean") + << this->BuildMakeCommand(make, makefileName.c_str(), "clean", makeFlags) << "\" />\n" " </MakeCommands>\n" " </Target>\n"; @@ -753,9 +760,15 @@ int cmExtraCodeBlocksGenerator::GetCBTargetType(cmGeneratorTarget* target) // make std::string cmExtraCodeBlocksGenerator::BuildMakeCommand( const std::string& make, const char* makefile, - const std::string& target) + const std::string& target, const std::string& makeFlags) { std::string command = make; + if (makeFlags.size() > 0) + { + command += " "; + command += makeFlags; + } + std::string generator = this->GlobalGenerator->GetName(); if (generator == "NMake Makefiles") { diff --git a/Source/cmExtraCodeBlocksGenerator.h b/Source/cmExtraCodeBlocksGenerator.h index 0c3846d..4abfa7e 100644 --- a/Source/cmExtraCodeBlocksGenerator.h +++ b/Source/cmExtraCodeBlocksGenerator.h @@ -54,13 +54,16 @@ private: std::string GetCBCompilerId(const cmMakefile* mf); int GetCBTargetType(cmGeneratorTarget* target); std::string BuildMakeCommand(const std::string& make, const char* makefile, - const std::string& target); + const std::string& target, + const std::string& makeFlags); void AppendTarget(cmGeneratedFileStream& fout, const std::string& targetName, cmGeneratorTarget* target, const char* make, const cmLocalGenerator* lg, - const char* compiler); + const char* compiler, + const std::string& makeFlags + ); }; ----------------------------------------------------------------------- Summary of changes: Modules/CMakeFindCodeBlocks.cmake | 15 ++++++++++++++ Source/cmExtraCodeBlocksGenerator.cxx | 35 ++++++++++++++++++++++----------- Source/cmExtraCodeBlocksGenerator.h | 7 +++++-- 3 files changed, 44 insertions(+), 13 deletions(-) hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits