Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
But I still get the CMake.GetPrerequisites test timing out. I don't see that in: https://open.cdash.org/buildSummary.php?buildid=3701966 You're right. For some reason it is not timing out. It just takes a really long time. I wonder if my path is long. That test takes an order of magnitude longer on my machine than the rest: https://open.cdash.org/testSummary.php?project=1name=CMake.GetPrerequisitesdate=2015-02-19. Please add to your dashboard scripts a line like: set(ENV{PATH} ...) to set a path without python in it for running this dashboard. ... Also, I haven't debugged the warnings in the Build row yet. That may be due to the lack of a fresh build tree: #CTEST_EMPTY_BINARY_DIRECTORY(${CTEST_BINARY_DIRECTORY}) I'll give it a try this weekend. Geoffrey Viola SOFTWARE ENGINEER asirobots.com -Original Message- From: Brad King [mailto:brad.k...@kitware.com] Sent: Friday, February 20, 2015 8:35 AM To: Geoffrey Viola Cc: cmake-developers@cmake.org Subject: Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support On 02/19/2015 07:44 PM, Geoffrey Viola wrote: The nightly build that I use does use the cmake_common.cmake script to grab the latest code, build, test it, etc. Here's what my nightly build results look like: https://open.cdash.org/buildSummary.php?buildid=3701008. Sorry, I mixed up your nightly build and the experimental build you linked. I made that small change in the attached patch. I ran another experimental build in debug. Here are those results: https://open.cdash.org/buildSummary.php?buildid=3701457. Thanks. I expected the CMakeOnly.MajorVersionSelection-PythonInterp_2 to fail because I have the Python 3.3 executable in my path. Please add to your dashboard scripts a line like: set(ENV{PATH} ...) to set a path without python in it for running this dashboard. That will avoid the problem, which is a separate discussion to address. (The test is covering that the requested major version is preferred if executables called python2 and python3 are both in the path, but if just python is available then it is used.) But I still get the CMake.GetPrerequisites test timing out. I don't see that in: https://open.cdash.org/buildSummary.php?buildid=3701966 Also, I haven't debugged the warnings in the Build row yet. That may be due to the lack of a fresh build tree: #CTEST_EMPTY_BINARY_DIRECTORY(${CTEST_BINARY_DIRECTORY}) This suit of tests was done using a script based on the autogenerated CTestScript.cmake script. I don't think CDash has been configured to generate those for CMake properly. Once you have the nightly dashboard submission running cleanly then we can look at merging your generator for testing in 'next' to have it covered there. -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
Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
On 02/19/2015 07:44 PM, Geoffrey Viola wrote: The nightly build that I use does use the cmake_common.cmake script to grab the latest code, build, test it, etc. Here's what my nightly build results look like: https://open.cdash.org/buildSummary.php?buildid=3701008. Sorry, I mixed up your nightly build and the experimental build you linked. I made that small change in the attached patch. I ran another experimental build in debug. Here are those results: https://open.cdash.org/buildSummary.php?buildid=3701457. Thanks. I expected the CMakeOnly.MajorVersionSelection-PythonInterp_2 to fail because I have the Python 3.3 executable in my path. Please add to your dashboard scripts a line like: set(ENV{PATH} ...) to set a path without python in it for running this dashboard. That will avoid the problem, which is a separate discussion to address. (The test is covering that the requested major version is preferred if executables called python2 and python3 are both in the path, but if just python is available then it is used.) But I still get the CMake.GetPrerequisites test timing out. I don't see that in: https://open.cdash.org/buildSummary.php?buildid=3701966 Also, I haven't debugged the warnings in the Build row yet. That may be due to the lack of a fresh build tree: #CTEST_EMPTY_BINARY_DIRECTORY(${CTEST_BINARY_DIRECTORY}) This suit of tests was done using a script based on the autogenerated CTestScript.cmake script. I don't think CDash has been configured to generate those for CMake properly. Once you have the nightly dashboard submission running cleanly then we can look at merging your generator for testing in 'next' to have it covered there. -Brad -- 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
Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
Great, thanks. However, we really need to have the cmake_common.cmake script used to drive it The nightly build that I use does use the cmake_common.cmake script to grab the latest code, build, test it, etc. Here's what my nightly build results look like: https://open.cdash.org/buildSummary.php?buildid=3701008. Any tests depending on local system configuration need to have an option to explicitly enable them on such systems. See the existing CMake_TEST_FindJsonCpp option for example. Just put your new test(s) inside a condition on a CMake_TEST_GreenHillsMULTI variable. Then add to your dashboard script:: set(dashboard_cache CMake_TEST_GreenHillsMULTI:BOOL=ON ) before including cmake_common.cmake and the tests will be enabled once they are in the repo. I made that small change in the attached patch. I ran another experimental build in debug. Here are those results: https://open.cdash.org/buildSummary.php?buildid=3701457. I expected the CMakeOnly.MajorVersionSelection-PythonInterp_2 to fail because I have the Python 3.3 executable in my path. But I still get the CMake.GetPrerequisites test timing out. Also, I haven't debugged the warnings in the Build row yet. This suit of tests was done using a script based on the autogenerated CTestScript.cmake script. Geoffrey Viola SOFTWARE ENGINEER asirobots.com -Original Message- From: Brad King [mailto:brad.k...@kitware.com] Sent: Tuesday, February 17, 2015 9:02 AM To: Geoffrey Viola Cc: cmake-developers@cmake.org Subject: Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support On 02/17/2015 10:47 AM, Geoffrey Viola wrote: I submitted a test report with all the tests passing. https://open.cdash.org/buildSummary.php?buildid=3698090. Great, thanks. However, we really need to have the cmake_common.cmake script used to drive it. What I was asking in my previous response was for you to get a normal nightly testing dashboard submission configured and working independent of your changes. For that using the common script with ctest_update is okay. I'm not sure how to handle cases where the user wants to run all the test and expects all to pass, but does not have Green Hills installed. Any tests depending on local system configuration need to have an option to explicitly enable them on such systems. See the existing CMake_TEST_FindJsonCpp option for example. Just put your new test(s) inside a condition on a CMake_TEST_GreenHillsMULTI variable. Then add to your dashboard script:: set(dashboard_cache CMake_TEST_GreenHillsMULTI:BOOL=ON ) before including cmake_common.cmake and the tests will be enabled once they are in the repo. 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. 0001-Added-some-support-for-a-Green-Hills-MULTI.patch Description: 0001-Added-some-support-for-a-Green-Hills-MULTI.patch -- 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
Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
I submitted a test report with all the tests passing. https://open.cdash.org/buildSummary.php?buildid=3698090. This test report includes the extra tests that I added. It looks like things are running even though I haven't made any changes specifically to fix those failing tests. One of the issues I had before was that I used the auto generated CTestScript.cmake script that ran CTEST_UPDATE(SOURCE ${CTEST_SOURCE_DIRECTORY}). In addition, I found it unusual that the CMakeOnly.MajorVersionSelection-PythonInterp_2 test will fail if there is a path to the python 3.3 executable. Also, the CMake.GetPrerequisites will sometimes timeout on my machine. You can use Windows Task Scheduler to run a .bat file that calls ctest with the dashboard script. I set up a nightly build on my machine. I'm not sure how to handle cases where the user wants to run all the test and expects all to pass, but does not have Green Hills installed. Geoffrey Viola SOFTWARE ENGINEER asirobots.com -Original Message- From: Brad King [mailto:brad.k...@kitware.com] Sent: Tuesday, February 03, 2015 1:05 PM To: Geoffrey Viola Cc: cmake-developers@cmake.org Subject: Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support On 01/28/2015 10:51 PM, Geoffrey Viola wrote: I submitted some builds. I'm not sure why 9 fail. Okay, let's get your builds submitting cleanly with no local changes first. That way we can identify whether any of your changes cause the failures. There are basic instructions for setting up a nightly build here: http://www.cmake.org/Wiki/CMake/Git/Dashboard You can use Windows Task Scheduler to run a .bat file that calls ctest with the dashboard script. Once we get your submission to a clean state then we can continue looking at the changes for the new generator and whether they cause any failures. 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. 0001-Added-some-support-for-a-Green-Hills-MULTI.patch Description: 0001-Added-some-support-for-a-Green-Hills-MULTI.patch -- 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
Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
On 02/17/2015 10:47 AM, Geoffrey Viola wrote: I submitted a test report with all the tests passing. https://open.cdash.org/buildSummary.php?buildid=3698090. Great, thanks. However, we really need to have the cmake_common.cmake script used to drive it. What I was asking in my previous response was for you to get a normal nightly testing dashboard submission configured and working independent of your changes. For that using the common script with ctest_update is okay. I'm not sure how to handle cases where the user wants to run all the test and expects all to pass, but does not have Green Hills installed. Any tests depending on local system configuration need to have an option to explicitly enable them on such systems. See the existing CMake_TEST_FindJsonCpp option for example. Just put your new test(s) inside a condition on a CMake_TEST_GreenHillsMULTI variable. Then add to your dashboard script:: set(dashboard_cache CMake_TEST_GreenHillsMULTI:BOOL=ON ) before including cmake_common.cmake and the tests will be enabled once they are in the repo. Thanks, -Brad -- 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
Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
On 01/28/2015 10:51 PM, Geoffrey Viola wrote: I submitted some builds. I'm not sure why 9 fail. Okay, let's get your builds submitting cleanly with no local changes first. That way we can identify whether any of your changes cause the failures. There are basic instructions for setting up a nightly build here: http://www.cmake.org/Wiki/CMake/Git/Dashboard You can use Windows Task Scheduler to run a .bat file that calls ctest with the dashboard script. Once we get your submission to a clean state then we can continue looking at the changes for the new generator and whether they cause any failures. Thanks, -Brad -- 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
Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
* The hunk in Modules/CMakeDetermineCompilerId.cmake is now just a whitespace change, so please drop it. It's removed * Please ensure C++ sources do not have lines exceeding 79 columns. * Please avoid trailing whitespace on source lines. ClangFormat with llvm configuration was run to clean some of the files up. Next we need to add tests. Since CMake won't build with this generator we need to add tests using the generator as part of the test suite when the needed tools are available. Look in Tests/CMakeLists.txt for uses of add_test_VSWinStorePhone as an example of how this is done for another target platform. You can either add a new test directory with dedicated code covering capabilities of the generator, or re-use some of the existing tests to see if they build under the new generator, or both. I added 2 tests. They are named GhsMulti.arm_integrity_simarm and GhsMulti.arm64_integrity_simarm. Once you get tests working, please look at submitting an experimental build to our dashboard and posting a link to it. You can do that from the build tree of CMake with ctest -C Debug -D Experimental (or with whatever configuration you built locally). I submitted some builds. Here's a link https://open.cdash.org/viewTest.php?buildid=3671841. I'm not sure why 9 fail. Also, the tests that I added don't show up, but I can see them in the Test.xml document. Geoffrey Viola SOFTWARE ENGINEER asirobots.com -Original Message- From: Brad King [mailto:brad.k...@kitware.com] Sent: Tuesday, November 25, 2014 1:06 PM To: Geoffrey Viola Cc: cmake-developers@cmake.org Subject: Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support On 11/17/2014 05:16 PM, Geoffrey Viola wrote: I made some changes and rebased on the trunk. Thanks. Here are a few minor comments: * The hunk in Modules/CMakeDetermineCompilerId.cmake is now just a whitespace change, so please drop it. * Please ensure C++ sources do not have lines exceeding 79 columns. * Please avoid trailing whitespace on source lines. Next we need to add tests. Since CMake won't build with this generator we need to add tests using the generator as part of the test suite when the needed tools are available. Look in Tests/CMakeLists.txt for uses of add_test_VSWinStorePhone as an example of how this is done for another target platform. You can either add a new test directory with dedicated code covering capabilities of the generator, or re-use some of the existing tests to see if they build under the new generator, or both. Once you get tests working, please look at submitting an experimental build to our dashboard and posting a link to it. You can do that from the build tree of CMake with ctest -C Debug -D Experimental (or with whatever configuration you built locally). 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. 0001-Added-some-support-for-a-Green-Hills-MULTI.patch Description: 0001-Added-some-support-for-a-Green-Hills-MULTI.patch -- 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
Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
On 11/17/2014 05:16 PM, Geoffrey Viola wrote: I made some changes and rebased on the trunk. Thanks. Here are a few minor comments: * The hunk in Modules/CMakeDetermineCompilerId.cmake is now just a whitespace change, so please drop it. * Please ensure C++ sources do not have lines exceeding 79 columns. * Please avoid trailing whitespace on source lines. Next we need to add tests. Since CMake won't build with this generator we need to add tests using the generator as part of the test suite when the needed tools are available. Look in Tests/CMakeLists.txt for uses of add_test_VSWinStorePhone as an example of how this is done for another target platform. You can either add a new test directory with dedicated code covering capabilities of the generator, or re-use some of the existing tests to see if they build under the new generator, or both. Once you get tests working, please look at submitting an experimental build to our dashboard and posting a link to it. You can do that from the build tree of CMake with ctest -C Debug -D Experimental (or with whatever configuration you built locally). Thanks, -Brad -- 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
Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
On 11/17/2014 5:16 PM, Geoffrey Viola wrote: Thanks for the feedback. I made some changes and rebased on the trunk. Great. I'll try it out again when I get a chance. The cmake system version can be changed with the GHS_COMP_ROOT cache variable. Okay, so the version is determined by the tools used, and there is exactly one version at a given GHS_COMP_ROOT? Thanks, -Brad -- 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
Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
The cmake system version can be changed with the GHS_COMP_ROOT cache variable. Okay, so the version is determined by the tools used, and there is exactly one version at a given GHS_COMP_ROOT? Yeah, the CMAKE_SYSTEM_VERSION variable is dependent on the compiler directory name. From what I've seen, it is a year concatenated with a two digit number. All the compiler executables are in this versioned folder. Geoffrey Viola SOFTWARE ENGINEER T +1.435.755.2980 ext 1077 M +1.215.896.6521 asirobots.com -Original Message- From: Brad King [mailto:brad.k...@kitware.com] Sent: Tuesday, November 18, 2014 7:36 AM To: Geoffrey Viola Cc: cmake-developers@cmake.org Subject: Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support On 11/17/2014 5:16 PM, Geoffrey Viola wrote: Thanks for the feedback. I made some changes and rebased on the trunk. Great. I'll try it out again when I get a chance. The cmake system version can be changed with the GHS_COMP_ROOT cache variable. Okay, so the version is determined by the tools used, and there is exactly one version at a given GHS_COMP_ROOT? 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
Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
Thanks for the feedback. I made some changes and rebased on the trunk. The hunk in Modules/CMakeSystemSpecificInformation.cmake is now just removing a blank line so it should not be needed. Removed +message(GHS-DetermineCompiler.cmake) This looks like a leftover debugging message. Removed there are a few changes to find boost libraries with this generator. [snip] -if ( WIN32 AND Boost_USE_STATIC_LIBS AND NOT CYGWIN) +if (Windows STREQUAL ${CMAKE_HOST_SYSTEM_NAME} AND +Boost_USE_STATIC_LIBS AND NOT CYGWIN) Why does the host affect the library prefix for binaries meant for the target platform? I'm still unsure if the WIN32 cmake variables is the target, platform or both. I originally thought this check should be based on the host, but it should be based on the target platform. I added a special case for the GHS Multi platform. Some of the code is C++11. I'm not sure if that is an issue. It is. We build on compilers that barely support C++98. I removed usages of nullptr and std::anyof with a lamda expression. Also, it skips the step where it determines the compiler by using the force compiler macro. I don't see any other cmake module using this functionality. [snip] +set(CMAKE_SYSTEM_NAME GHS-MULTI) +set(CMAKE_SYSTEM_PROCESSOR ARM) ... +include(CMakeForceCompiler) +CMAKE_FORCE_CXX_COMPILER(cxarm GhsMultiArmCXX) Those APIs are meant for use in a CMAKE_TOOLCHAIN_FILE. The cmGlobalGhsMultiGenerator::EnableLanguage method should be able to take care of those. This is the first time we've had a generator that locks to a specific target platform (and implicitly cross-compiles). Is CMAKE_SYSTEM_VERSION always hard-coded on a given system or should the user be able to choose it in some way? Platform/GHS-MULTI-C.cmake and Platform/GHS-MULTI-CXX.cmake have been moved into the enable language method. The cmake system version can be changed with the GHS_COMP_ROOT cache variable. The version variable is not currently being used internally, since I've only tested it on what I think is the latest version. There was a bug in the previous use of find_program for CMAKE_MAKE_PROGRAM, where I thought the paths were interpreted as a regular expression. Geoffrey Viola SOFTWARE ENGINEER T +1.435.755.2980 ext 1077 M +1.215.896.6521 asirobots.com -Original Message- From: Brad King [mailto:brad.k...@kitware.com] Sent: Wednesday, November 05, 2014 12:37 PM To: Geoffrey Viola Cc: cmake-developers@cmake.org Subject: Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support On 11/05/2014 01:11 PM, Geoffrey Viola wrote: I rebased and squashed the previous commits and made some new changes. Thanks. Here are more comments. The hunk in Modules/CMakeSystemSpecificInformation.cmake is now just removing a blank line so it should not be needed. +message(GHS-DetermineCompiler.cmake) This looks like a leftover debugging message. there are a few changes to find boost libraries with this generator. [snip] -if ( WIN32 AND Boost_USE_STATIC_LIBS AND NOT CYGWIN) +if (Windows STREQUAL ${CMAKE_HOST_SYSTEM_NAME} AND +Boost_USE_STATIC_LIBS AND NOT CYGWIN) Why does the host affect the library prefix for binaries meant for the target platform? Some of the code is C++11. I'm not sure if that is an issue. It is. We build on compilers that barely support C++98. Also, it skips the step where it determines the compiler by using the force compiler macro. I don't see any other cmake module using this functionality. [snip] +set(CMAKE_SYSTEM_NAME GHS-MULTI) +set(CMAKE_SYSTEM_PROCESSOR ARM) ... +include(CMakeForceCompiler) +CMAKE_FORCE_CXX_COMPILER(cxarm GhsMultiArmCXX) Those APIs are meant for use in a CMAKE_TOOLCHAIN_FILE. The cmGlobalGhsMultiGenerator::EnableLanguage method should be able to take care of those. This is the first time we've had a generator that locks to a specific target platform (and implicitly cross-compiles). Is CMAKE_SYSTEM_VERSION always hard-coded on a given system or should the user be able to choose it in some way? 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. 0001-Added-some-support-for-a-Green-Hill-MULTI.patch Description: 0001-Added-some-support-for-a-Green-Hill-MULTI.patch -- 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
Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
I rebased and squashed the previous commits and made some new changes. The GHS generator should now build a kernel and a monolith, which is necessary to autogenerate all the files necessary to compile. The generator determines that the executable target is a kernel based on a compiler flag and determines that it is a monolith if a file with an int ending is there. Also, there are a few changes to find boost libraries with this generator. Some of the code is C++11. I'm not sure if that is an issue. Also, it skips the step where it determines the compiler by using the force compiler macro. I don't see any other cmake module using this functionality. Geoffrey Viola SOFTWARE ENGINEER T +1.435.755.2980 ext 1077 M +1.215.896.6521 asirobots.com -Original Message- From: Brad King [mailto:brad.k...@kitware.com] Sent: Monday, October 27, 2014 7:46 AM To: Geoffrey Viola Cc: cmake-developers@cmake.org Subject: Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support On 10/14/2014 12:48 PM, Geoffrey Viola wrote: Green Hills MULTI is an IDE for embedded real-time systems. http://www.ghs.com/products/MULTI_IDE.html. http://www.ghs.com/products/rtos/integrity.html. Thanks for the explanation. I took a look at CMAKE_OSX_SYSROOT. It is similar to GHS_OS_DIR. There may be a simpler way to represent these customizations, but I don't know if there are any guarantees on standard folder structures or names. [snip] It seems there needs to be some development to use the find boost module, because CMAKE_FIND_LIBRARY_PREFIXES is not set. Both of these should be addressed by creating the corresponding Modules/Platform/*.cmake files associated with the target platform. -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. 0001-Added-basic-and-partial-support-for-a-Green-Hill-MUL.patch Description: 0001-Added-basic-and-partial-support-for-a-Green-Hill-MUL.patch -- 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
Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
On 10/14/2014 12:48 PM, Geoffrey Viola wrote: Green Hills MULTI is an IDE for embedded real-time systems. http://www.ghs.com/products/MULTI_IDE.html. http://www.ghs.com/products/rtos/integrity.html. Thanks for the explanation. I took a look at CMAKE_OSX_SYSROOT. It is similar to GHS_OS_DIR. There may be a simpler way to represent these customizations, but I don't know if there are any guarantees on standard folder structures or names. [snip] It seems there needs to be some development to use the find boost module, because CMAKE_FIND_LIBRARY_PREFIXES is not set. Both of these should be addressed by creating the corresponding Modules/Platform/*.cmake files associated with the target platform. -Brad -- 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
Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
On 10/09/2014 07:36 PM, Geoffrey Viola wrote: Attached is a patch to make CMake generate files for the Green Hills MULTI IDE. These patches are in reference to this feature request: http://public.kitware.com/Bug/view.php?id=14992. Thanks for working on this. First I've extracted the comment typo fixes from the second patch: Fix some spelling errors in comments http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bef23e81 I've attached a patch rebasing the rest of the changes on 'master' after integration of the typo fixes. To aid others for review, please provide a high-level explanation of the MULTI IDE, its target platforms, and how developers might use it with CMake. There were some limitations. It has been restricted to Windows, because that is the version of the IDE that I have. There is a special grouping called a Monolith that includes several executables, shared libraries, and the kernel. These monoliths have their own set of compile options. I’m not sure how CMake would be able to create these. Also, there are some internal macros that point to the compiler’s target BSP and OS that are currently populated via CMake variables: GHS_CUSTOMIZATION, GHS_OS_DIR, and GHS_BSP_NAME. Depending on the semantics, these may belong in Modules/Platform/os.cmake for some os name of the target platform. We'll need a better understanding of their role to say for sure though. See CMAKE_OSX_SYSROOT in Darwin*.cmake for example. Thanks, -Brad From 2a6c15be56d938d1fac6a06ef9acb06ceeec1e67 Mon Sep 17 00:00:00 2001 Message-Id: 2a6c15be56d938d1fac6a06ef9acb06ceeec1e67.1413294735.git.brad.k...@kitware.com From: Geoff Viola geoffrey.vi...@autonomoussolutions.com Date: Thu, 9 Oct 2014 17:07:48 -0600 Subject: [PATCH] Added basic and partial support for a Green Hill MULTI IDE. --- Modules/CMakeGreenHillsFindMake.cmake | 25 +++ Source/CMakeLists.txt | 6 + Source/cmGhsMultiTargetGenerator.cxx | 301 ++ Source/cmGhsMultiTargetGenerator.h| 74 Source/cmGlobalGhsMultiGenerator.cxx | 338 ++ Source/cmGlobalGhsMultiGenerator.h| 104 +++ Source/cmLocalGhsMultiGenerator.cxx | 56 ++ Source/cmLocalGhsMultiGenerator.h | 56 ++ Source/cmake.cxx | 4 + 9 files changed, 964 insertions(+) create mode 100644 Modules/CMakeGreenHillsFindMake.cmake create mode 100644 Source/cmGhsMultiTargetGenerator.cxx create mode 100644 Source/cmGhsMultiTargetGenerator.h create mode 100644 Source/cmGlobalGhsMultiGenerator.cxx create mode 100644 Source/cmGlobalGhsMultiGenerator.h create mode 100644 Source/cmLocalGhsMultiGenerator.cxx create mode 100644 Source/cmLocalGhsMultiGenerator.h diff --git a/Modules/CMakeGreenHillsFindMake.cmake b/Modules/CMakeGreenHillsFindMake.cmake new file mode 100644 index 000..7af9f18 --- /dev/null +++ b/Modules/CMakeGreenHillsFindMake.cmake @@ -0,0 +1,25 @@ + +#= +# Copyright 2005-2009 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the License); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) +# set(CMAKE_CROSSCOMPILING TRUE) + +set(CMAKE_SYSTEM_NAME Green Hills MULTI) +set(CMAKE_SYSTEM_PROCESSOR ARM) +find_program(CMAKE_MAKE_PROGRAM gbuild.exe PATHS +[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\GreenHillsSoftware9881cef6;InstallLocation] +c:/ghs/comp_.* +) +string(REGEX MATCH (comp_)([0-9]+) CMAKE_SYSTEM_VERSION ${CMAKE_MAKE_PROGRAM}) +string(REPLACE comp_ CMAKE_SYSTEM_VERSION ${CMAKE_SYSTEM_VERSION}) + +mark_as_advanced(CMAKE_MAKE_PROGRAM) diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index f9405b3..df642d5 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -446,6 +446,12 @@ if (WIN32) cmVisualStudioSlnParser.cxx cmVisualStudioWCEPlatformParser.h cmVisualStudioWCEPlatformParser.cxx + cmGlobalGhsMultiGenerator.cxx + cmGlobalGhsMultiGenerator.h + cmLocalGhsMultiGenerator.cxx + cmLocalGhsMultiGenerator.h + cmGhsMultiTargetGenerator.cxx + cmGhsMultiTargetGenerator.h ) endif() endif () diff --git a/Source/cmGhsMultiTargetGenerator.cxx b/Source/cmGhsMultiTargetGenerator.cxx new file mode 100644 index 000..9a955bc --- /dev/null +++ b/Source/cmGhsMultiTargetGenerator.cxx @@ -0,0 +1,301 @@ +/* + CMake - Cross Platform Makefile Generator + Copyright 2011 Peter
Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
Green Hills MULTI is an IDE for embedded real-time systems. It features an editor, a great debugger, and a GUI to organize and visual memory layouts: http://www.ghs.com/products/MULTI_IDE.html. There is a Linux and Windows version of it. Green Hill's real-time operating system, INTEGRITY, supports ARM, Intel x86, and other architectures: http://www.ghs.com/products/rtos/integrity.html. It is advantageous to use CMake for its script based target management functionality, which is very useful to manage unit tests, and 3rd party finding mechanisms. Switching between IDEs is advantageous because other IDEs have better editors and built-in support to run unit tests. Also, embedded code could be ported to ease debugging without extra hardware. I took a look at CMAKE_OSX_SYSROOT. It is similar to GHS_OS_DIR. There may be a simpler way to represent these customizations, but I don't know if there are any guarantees on standard folder structures or names. The current patch is being used to create all the main targets and a default top level file. That generated top level file is hand edited to include custom hand edited kernel and monolith files. It is my intention to generate everything via CMake. It seems there needs to be some development to use the find boost module, because CMAKE_FIND_LIBRARY_PREFIXES is not set. Geoffrey Viola SOFTWARE ENGINEER T +1.435.755.2980 ext 1077 M +1.215.896.6521 asirobots.com -Original Message- From: Brad King [mailto:brad.k...@kitware.com] Sent: Tuesday, October 14, 2014 7:57 AM To: Geoffrey Viola Cc: cmake-developers@cmake.org Subject: Re: [cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support On 10/09/2014 07:36 PM, Geoffrey Viola wrote: Attached is a patch to make CMake generate files for the Green Hills MULTI IDE. These patches are in reference to this feature request: http://public.kitware.com/Bug/view.php?id=14992. Thanks for working on this. First I've extracted the comment typo fixes from the second patch: Fix some spelling errors in comments http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bef23e81 I've attached a patch rebasing the rest of the changes on 'master' after integration of the typo fixes. To aid others for review, please provide a high-level explanation of the MULTI IDE, its target platforms, and how developers might use it with CMake. There were some limitations. It has been restricted to Windows, because that is the version of the IDE that I have. There is a special grouping called a Monolith that includes several executables, shared libraries, and the kernel. These monoliths have their own set of compile options. I'm not sure how CMake would be able to create these. Also, there are some internal macros that point to the compiler's target BSP and OS that are currently populated via CMake variables: GHS_CUSTOMIZATION, GHS_OS_DIR, and GHS_BSP_NAME. Depending on the semantics, these may belong in Modules/Platform/os.cmake for some os name of the target platform. We'll need a better understanding of their role to say for sure though. See CMAKE_OSX_SYSROOT in Darwin*.cmake for example. 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
[cmake-developers] Initial Attempt at Green Hill MULTI IDE Generator Support
Attached is a patch to make CMake generate files for the Green Hills MULTI IDE. These patches are in reference to this feature request: http://public.kitware.com/Bug/view.php?id=14992. There were some limitations. It has been restricted to Windows, because that is the version of the IDE that I have. There is a special grouping called a Monolith that includes several executables, shared libraries, and the kernel. These monoliths have their own set of compile options. I'm not sure how CMake would be able to create these. Also, there are some internal macros that point to the compiler's target BSP and OS that are currently populated via CMake variables: GHS_CUSTOMIZATION, GHS_OS_DIR, and GHS_BSP_NAME. Any feedback would be appreciated. Thanks, [cid:image001.png@01CE6DA0.CA468FE0] Geoffrey Viola Software Engineer T +1.435.755.2980 ext 1077 M +1.215.896.6521 asirobots.comhttp://www.asirobots.com/ 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. 0002-Updated-supplementary-files-to-include-the-GHS-gener.patch Description: 0002-Updated-supplementary-files-to-include-the-GHS-gener.patch 0001-Added-basic-and-partial-support-for-a-Green-Hill-MUL.patch Description: 0001-Added-basic-and-partial-support-for-a-Green-Hill-MUL.patch -- 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