OpenRTM / OpenRTP-aist

OpenRTP-aist: RT-Middleware and OMG RTC based component and system development tools implemented by AIST
Other
1 stars 6 forks source link

RTCBuilderが生成するC++ファイルをOpenRTM-aist 1.2、2.0の両方でビルドできるようにする #474

Closed Nobu19800 closed 2 years ago

Nobu19800 commented 2 years ago

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

RTC Builderが出力するC++ファイルを2.0、1.2のどちらでもビルドできるようにする。

Describe alternatives you've considered

以下は修正前。

    if(NOT WIN32)
        execute_process(COMMAND rtm-config --prefix OUTPUT_VARIABLE OPENRTM_DIR
        OUTPUT_STRIP_TRAILING_WHITESPACE)
        execute_process(COMMAND rtm-config --idlflags OUTPUT_VARIABLE OPENRTM_IDLFLAGS
        OUTPUT_STRIP_TRAILING_WHITESPACE)
        separate_arguments(OPENRTM_IDLFLAGS)
        execute_process(COMMAND rtm-config --idlc OUTPUT_VARIABLE OPENRTM_IDLC
        OUTPUT_STRIP_TRAILING_WHITESPACE)
        set(_rtm_skelwrapper_command "rtm-skelwrapper")
    else(NOT WIN32)
        set(_rtm_skelwrapper_command "rtm-skelwrapper.py")
    endif(NOT WIN32)
    get_filename_component(_idl ${_idl_file} NAME_WE)
    set(_idl_srcs_var ${_idl}_SRCS)
    _IDL_OUTPUTS(${_idl} ${CMAKE_CURRENT_BINARY_DIR} ${_idl_srcs_var})

    add_custom_command(OUTPUT ${${_idl_srcs_var}}
        COMMAND python ${OPENRTM_DIR}/bin/${_rtm_skelwrapper_command} --include-dir= --skel-suffix=Skel --stub-suffix=Stub --idl-file=${_idl}.idl
        COMMAND ${OPENRTM_IDLC} ${OPENRTM_IDLFLAGS} ${_idl_file}

以下は修正後。

    if(${OPENRTM_VERSION_MAJOR} LESS 2)
        if(NOT WIN32)
            execute_process(COMMAND rtm-config --prefix OUTPUT_VARIABLE OPENRTM_DIR
            OUTPUT_STRIP_TRAILING_WHITESPACE)
            execute_process(COMMAND rtm-config --idlflags OUTPUT_VARIABLE OPENRTM_IDLFLAGS
            OUTPUT_STRIP_TRAILING_WHITESPACE)
            separate_arguments(OPENRTM_IDLFLAGS)
            execute_process(COMMAND rtm-config --idlc OUTPUT_VARIABLE OPENRTM_IDLC
            OUTPUT_STRIP_TRAILING_WHITESPACE)
            set(_rtm_skelwrapper_command "rtm-skelwrapper")
        else(NOT WIN32)
            set(_rtm_skelwrapper_command "rtm-skelwrapper.py")
        endif(NOT WIN32)
        set(OPENRTM_IDL_WRAPPER ${_rtm_skelwrapper_command})
        set(OPENRTM_IDL_WRAPPER_FLAGS --include-dir= --skel-suffix=Skel --stub-suffix=Stub --idl-file=${_idl}.idl)
    endif()

    add_custom_command(OUTPUT ${${_idl_srcs_var}}
        COMMAND ${_python_command} ${OPENRTM_DIR}/bin/${OPENRTM_IDL_WRAPPER} ${OPENRTM_IDL_WRAPPER_FLAGS} --idl-file=${_idl}.idl
        COMMAND ${OPENRTM_IDLC} ${OPENRTM_IDLFLAGS} ${_idl_file}
#if RTM_MAJOR_VERSION >= 2
static const char* const test_spec[] =
#else
static const char* test_spec[] =
#endif

Additional context 修正したファイル一式を添付します。修正したファイルはidl/CMakeLists.txtsrc/testIDL.cppの2つです。

testIDL.zip

n-ando commented 2 years ago

@ga-sakamoto さん、こちらの変更をお願いできますでしょうか?