Skip to Main Content
IBM Sustainability Software - Ideas Portal


This portal is to open public enhancement requests against the products and services belonging to IBM Sustainability Software. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Functionality already exists
Created by Guest
Created on Jul 22, 2022

Modernise Rhapsody by generating a cmake compatible CMakeLists.txt instead of a makefile directly

Many third party tools favour cmake integration. I want to use CPM.cmake to help me avoid the need for git submodules for third party libraries (eg: open source githubs). See https://github.com/cpm-cmake/CPM.cmake/wiki/More-Snippets for examples. CPM.cmake expects projects to be compatible with cmake. Also Visual Studio cmake projects support Remote Linux debugging. I have achieved this using empty VS projects but cmake might make things easier. Visual Studio often expects to Build and Deploy not just debug a binary already built by Rhapsody. An example CMakeLists.txt file - cmake_minimum_required(VERSION 3.10) project(IQ5_App) add_custom_target(MYPROJ ALL COMMAND make -j$(nproc) -f Linux.mak all BuildSet=Debug WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )

Idea priority Low
  • Guest
    Reply
    |
    Sep 6, 2022

    I was thinking more like (from https://cmake.org/cmake/help/book/mastering-cmake/chapter/Converting%20Existing%20Systems%20To%20CMake.html#converting-unix-makefiles) -

    Frequently Makefiles have a list of object files to compile. These can be converted to CMake variables as follows:

    OBJS= \
    foo1.o \
    foo2.o \
    foo3.o

    becomes

    set(SOURCES  foo1.c  foo2.c  foo3.c)


  • Admin
    SANTHARAM SUNEEL
    Reply
    |
    Aug 24, 2022

    Hi,
    Rhapsody in general is highly customizable using APIs and with property settings.
    I expect that with the appropriate properties’ definition with the proper keywords, it may be possible to achieve this.

    Attaching a small model which can be a starting point.

    As I said earlier happy to connect with our SMEs and BP's who can assist you on this requirement.

    Regards,
    Suneel...

  • Guest
    Reply
    |
    Aug 22, 2022

    I'm not sure the status "Funtionality already exists" is true.
    My idea is for Rhapsody not to generate the makefile as it does today but instead create a CMakeLists.txt file. Rhapsody can trigger cmake to then generate the makefile from the CMakeLists.txt file. My usage of add_custom_target is a workaround whilst Rhapsody is still in charge of generating the makefile.

  • Admin
    SANTHARAM SUNEEL
    Reply
    |
    Aug 22, 2022

    Hi,

    As you are already aware...
    Rhapsody generates the makefile based on a set of properties on a Configuration.

    The properties are under <language>_CG::<Setting>::<Property>.For example: C_CG :: Linux :: MakeFileContent is defining the Linux Setting makefile for C language.

    Or, C_CG:: Linux ::CompileSwitches, which defines the Linux Setting compilation flags per compilation for C languageSetting up these properties allows control over the generated makefile

    I expect all to be doable within the makefile definition, and other properties, like "invokeMake", which you suggested.

    Regarding CMakeLists.txt, I suggest consulting with our BP's or CTP's...

    Pls send me an email @suneel.san@in.ibm.com...I will connect to the respective BP/CTP on this request.

    Regards,
    Suneel...


  • Guest
    Reply
    |
    Jul 22, 2022
    • Autogenerate the makefile (as today).

    • Additionally autogenerate the CMakeLists.txt containing add_custom_target (as shown above)

    • Create and navigate into build folder as required (eg: build-dir)

    • Run cmake ..

    • Run make