These sounds like easy changes, but I probably won't be able to update and test 
it until the middle of next week.



Geoffrey Viola
SOFTWARE ENGINEER
asirobots.com



-----Original Message-----
From: Brad King [mailto:brad.k...@kitware.com]
Sent: Thursday, March 12, 2015 2:18 PM
To: Geoffrey Viola
Cc: cmake-developers@cmake.org
Subject: Re: FW: FW: [cmake-developers] Initial Attempt at Green Hill MULTI IDE 
Generator Support

On 03/11/2015 01:39 PM, Geoffrey Viola wrote:
> Attached is a patch with the recommended changes

Thanks!  The basic toolchain initialization is pretty close.
Here are more comments.

In Modules/Platform/GHS-MULTI-Initialize.cmake:

> +#Setup consistent compiler executables
> +find_program(CMAKE_GENERATOR_CC ccarm PATHS ${GHS_COMP_ROOT})
> +find_program(CMAKE_GENERATOR_CXX cxarm PATHS ${GHS_COMP_ROOT})

This should not be needed at all.  The CMAKE_GENERATOR_* variables are just 
hints to the compiler detection logic.  Since this generator hard-codes the 
compiler setting in C++ the logic that uses these variables is never executed 
anyway.

> +string(REGEX MATCH "(comp_)([0-9]+)" CMAKE_SYSTEM_VERSION
> +"${CMAKE_MAKE_PROGRAM}") string(REPLACE "comp_" ""
> +CMAKE_SYSTEM_VERSION "${CMAKE_SYSTEM_VERSION}")

EnableLanguage should be able to set CMAKE_SYSTEM_VERSION too now that it has 
code to find the comp root.

> +mark_as_advanced(CMAKE_MAKE_PROGRAM)

This should not be needed.

> +include(Platform/WindowsPaths)

This should move to Modules/Platform/GHS-MULTI.cmake

In EnableLanguage:

> +  mf->AddDefinition("CMAKE_MAKE_PROGRAM",
> +                    std::string(ghsCompRootStart +
> + "gbuild.exe").c_str());

The VS and Xcode generators no longer put this in the cache.
Take a look at how the Xcode generator now does this with

 cmGlobalXCodeGenerator::FindMakeProgram
 cmGlobalXCodeGenerator::GetXcodeBuildCommand
 cmGlobalXCodeGenerator::FindXcodeBuildCommand

and its call to SelectMakeProgram in GenerateBuildCommand:

  this->SelectMakeProgram(makeProgram, this->GetXcodeBuildCommand())

Together this all allows the generator to compute the proper build tool without 
exposing any settings to the user.

> +  mf->AddDefinition("CMAKE_C_COMPILER_ID", "GhsMultiArmC");
[snip]
> +  mf->AddDefinition("CMAKE_CXX_COMPILER_ID", "GhsMultiArmCXX");

Instead of "GhsMultiArm*" these should be just "GHS", to be consistent with 
"Modules/Compiler/GHS-DetermineCompiler.cmake".

-----------------------------------------------------------------

Please also look at modifying the Help/ directory to document the new 
generator.  You'll need at least to create/update:

 Help/manual/cmake-generators.7.rst
 Help/generator/Green Hills MULTI.rst
 Help/variable/CMAKE_MAKE_PROGRAM.rst

where the change to the last one depends on the above updates.

Thanks,
-Brad

This message contains confidential information and is intended only for the 
recipient. If you are not the named addressee you should not disseminate, 
distribute or copy this e-mail. Please notify the sender immediately if you 
have received this e-mail by mistake and delete this e-mail from your system. 
Finally, the recipient should check this email and any attachments for the 
presence of viruses. The company accepts no liability for any damage caused by 
any virus transmitted by this email.
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to