512 lines
20 KiB
CMake
Executable File
512 lines
20 KiB
CMake
Executable File
#
|
|
# @RDE_HEADER@
|
|
# $Revision$
|
|
# $Date$
|
|
# $Id$
|
|
#
|
|
# Created by Hanna E. Rathje, SLSE, 2015-08-24
|
|
#
|
|
# PURPOSE:
|
|
# --------
|
|
# CODEGEN_IDL_SVC srcList xmlFile_in
|
|
# CODEGEN_TOPIC_TYPEDEFS srcList xmlFile_in
|
|
# -->
|
|
# CODEGEN_DTC_TYPE_DEF(${srcList} ${xmlFile_in}
|
|
# CODEGEN_DTS_TYPE_DEF(${srcList} ${xmlFile_in}
|
|
# CODEGEN_FTC_TYPE_DEF(${srcList} ${xmlFile_in}
|
|
# CODEGEN_FTS_TYPE_DEF(${srcList} ${xmlFile_in}
|
|
# CODEGEN_CLIENT_TOPICS srcList xmlFile_in
|
|
# CODEGEN_SERVER_TOPICS srcList xmlFile_in
|
|
# CODEGEN_WRITE_SERVICEFILE_INFO
|
|
#
|
|
# From a given xml-File (i.e exm_service.xml) an <service_abbr>.idl (i.e. exm.idl) will be generated
|
|
# The idl-template file is the input file
|
|
#
|
|
# The program codegen_exe does the generation with the action "IDL"
|
|
#
|
|
|
|
INCLUDE(CMakeParseArguments)
|
|
|
|
MACRO(_ADD_SERVICE_RESTART_FLAG svcName)
|
|
|
|
STRING(TOUPPER ${svcName} _svcNameUpper)
|
|
STRING(TOLOWER ${svcName} _svcNameLower)
|
|
SET(_optionName DONTRESTARTSVC_${_svcNameUpper})
|
|
OPTION(${_optionName} "Do not automatically restart Service ${_svcNameUpper} (build dir only)" OFF)
|
|
SET(_fn "${CMAKE_BINARY_DIR}/share/Lts/xml/${_svcNameLower}.dontRestart")
|
|
IF (${_optionName})
|
|
FILE(WRITE ${_fn} "blub")
|
|
ELSE()
|
|
FILE(REMOVE ${_fn})
|
|
ENDIF()
|
|
|
|
ENDMACRO()
|
|
|
|
|
|
MACRO(_GET_SERVICENAME xmlFile_in svcNameOut)
|
|
GET_FILENAME_COMPONENT(xmlFile ${xmlFile_in} NAME_WE)
|
|
SET(_idx -1)
|
|
STRING(FIND "${xmlFile}" "_" _idx)
|
|
STRING(SUBSTRING "${xmlFile}" 0 ${_idx} ${svcNameOut})
|
|
ENDMACRO()
|
|
|
|
MACRO(_CODEGEN_ACTION action srcList xmlIn in_files out_files)
|
|
LIST(APPEND dependFiles ${ARGN} ${xmlIn} ${${in_files}})
|
|
#MESSAGE(STATUS "${action} ${xmlIn}")
|
|
#MESSAGE(STATUS "in_files: ${${in_files}} ")
|
|
#MESSAGE(STATUS "out_files: ${${out_files}} ")
|
|
|
|
SET(_cg codegen)
|
|
ADD_CUSTOM_COMMAND(OUTPUT ${${out_files}}
|
|
COMMAND ${_cg}
|
|
ARGS -s ${xmlIn}
|
|
-a ${action}
|
|
-o ${CMAKE_CURRENT_BINARY_DIR}
|
|
-i ${CMAKE_BINARY_DIR}/service_idl_files.txt
|
|
${${in_files}}
|
|
DEPENDS ${_cg} ${dependFiles}
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
LIST(APPEND ${srcList} ${${out_files}})
|
|
GET_FILENAME_COMPONENT(_xml "${CMAKE_CURRENT_SOURCE_DIR}/${xmlIn}" ABSOLUTE)
|
|
SET_PROPERTY(GLOBAL APPEND PROPERTY CODEGEN_IDL_FILES "${_xml}")
|
|
ENDMACRO()
|
|
|
|
MACRO(CODEGEN_DATABASE_STRUCTS srcList_h xmlFile_in)
|
|
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
|
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_structs.cpp.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_structs.h.grantlee"
|
|
)
|
|
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_structs.cpp"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_structs.h"
|
|
)
|
|
_CODEGEN_ACTION("DATABASE" ${srcList_h} ${xmlFile_in} in_files out_files ${ARGN})
|
|
ENDMACRO()
|
|
|
|
MACRO(CODEGEN_DATABASE_SQL srcList xmlFile_in)
|
|
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
|
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db.h.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_impl.cpp.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_impl.h.grantlee"
|
|
)
|
|
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.cpp"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.h"
|
|
)
|
|
_CODEGEN_ACTION("DATABASE" ${srcList} ${xmlFile_in} in_files out_files ${ARGN})
|
|
IF(NOT POLICY CMP0071)
|
|
QT5_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.h")
|
|
ENDIF()
|
|
ENDMACRO()
|
|
|
|
MACRO(CODEGEN_DAO srcList xmlFile_in)
|
|
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
|
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dao.cpp.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dao.h.grantlee"
|
|
)
|
|
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dao.cpp"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dao.h"
|
|
)
|
|
_CODEGEN_ACTION("dao" ${srcList} ${xmlFile_in} in_files out_files ${ARGN})
|
|
IF(NOT POLICY CMP0071)
|
|
QT5_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dao.cpp"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dao.h")
|
|
ENDIF()
|
|
ENDMACRO()
|
|
|
|
MACRO(CODEGEN_DATABASE srcList xmlFile_in)
|
|
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
|
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_structs.cpp.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_structs.h.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_impl.cpp.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_impl.h.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db.h.grantlee"
|
|
)
|
|
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_structs.cpp"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_structs.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.cpp"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db.h"
|
|
)
|
|
_CODEGEN_ACTION("DATABASE_SERVER" ${srcList} ${xmlFile_in} in_files out_files ${ARGN})
|
|
IF(NOT POLICY CMP0071)
|
|
QT5_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.h")
|
|
ENDIF()
|
|
ENDMACRO()
|
|
|
|
|
|
MACRO(INSTALL_SHARED_FILES srcList)
|
|
SET(options)
|
|
SET(oneValueArgs DESTINATION)
|
|
SET(multiValueArgs FILES)
|
|
CMAKE_PARSE_ARGUMENTS(_ISF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
|
|
SET(build_out_dir ${CMAKE_BINARY_DIR}/share/Lts/${_ISF_DESTINATION})
|
|
SET(inst_out_dir share/Lts/${_ISF_DESTINATION})
|
|
|
|
FOREACH(filename ${_ISF_FILES})
|
|
GET_FILENAME_COMPONENT(fn ${filename} NAME)
|
|
SET(build_out_file ${build_out_dir}/${fn})
|
|
SET(in_file ${CMAKE_CURRENT_SOURCE_DIR}/${filename})
|
|
ADD_CUSTOM_COMMAND(OUTPUT ${build_out_file}
|
|
COMMAND ${CMAKE_COMMAND}
|
|
ARGS -E make_directory ${build_out_dir}
|
|
COMMAND ${CMAKE_COMMAND}
|
|
ARGS -E copy_if_different ${in_file} ${build_out_file}
|
|
DEPENDS ${in_file}
|
|
)
|
|
LIST(APPEND ${srcList} ${in_file} ${build_out_file})
|
|
ENDFOREACH()
|
|
NGL_INSTALL(${_ISF_UNPARSED_ARGUMENTS} FILES ${_ISF_FILES} DESTINATION ${inst_out_dir})
|
|
ENDMACRO()
|
|
|
|
MACRO(CODEGEN_SQL srcList xmlFile_in)
|
|
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
|
SET(out_dir_sql "${CMAKE_BINARY_DIR}/share/Lts/sql/")
|
|
SET(out_file_sql "${out_dir_sql}/${svcNameOut}.sql")
|
|
SET(action "SQL")
|
|
ADD_CUSTOM_COMMAND(OUTPUT ${out_file_sql}
|
|
COMMAND ${CMAKE_COMMAND}
|
|
ARGS -E make_directory ${out_dir_sql}
|
|
COMMAND codegen
|
|
ARGS -s ${xmlFile_in}
|
|
-a ${action}
|
|
-o ${out_dir_sql}
|
|
-i ${CMAKE_BINARY_DIR}/service_idl_files.txt
|
|
DEPENDS ${_cg} ${xmlFile_in}
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
LIST(APPEND ${srcList} ${out_file_sql})
|
|
|
|
# TODO, really here?
|
|
NGL_INSTALL(SV AAR FILES ${out_file_sql} DESTINATION share/Lts/sql)
|
|
ENDMACRO()
|
|
|
|
MACRO(CODEGEN_HANDLE_SVC_XML srcList xmlFile_in)
|
|
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
|
|
|
SET(out_dir_xml "${CMAKE_BINARY_DIR}/share/Lts/xml/")
|
|
SET(out_file_xml "${out_dir_xml}/${svcNameOut}.xml")
|
|
ADD_CUSTOM_COMMAND(OUTPUT ${out_file_xml}
|
|
COMMAND ${CMAKE_COMMAND}
|
|
ARGS -E make_directory ${out_dir_xml}
|
|
COMMAND ${CMAKE_COMMAND}
|
|
ARGS -E copy_if_different ${xmlFile_in} ${out_file_xml}
|
|
DEPENDS ${xmlFile_in}
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
|
|
LIST(APPEND ${srcList} ${xmlFile_in} ${out_file_xml})
|
|
|
|
_ADD_SERVICE_RESTART_FLAG(${svcNameOut})
|
|
|
|
# TODO, really here?
|
|
NGL_INSTALL(SV AAR FILES ${out_file_xml} DESTINATION share/Lts/xml)
|
|
ENDMACRO()
|
|
|
|
MACRO(CODEGEN_IDL_SVC srcList xmlFile_in)
|
|
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
|
|
|
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc.idl.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_enums.idl.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_json.cpp.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_json.h.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_translation.cpp.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_translation.h.grantlee"
|
|
)
|
|
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}.idl"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_enums.idl")
|
|
SET_PROPERTY(GLOBAL APPEND PROPERTY CODEGEN_IDL_FILES "${out_files}")
|
|
SET_SOURCE_FILES_PROPERTIES(${out_files} PROPERTIES HEADER_FILE_ONLY TRUE) # do not confuse msvc due to .idl extension
|
|
LIST(APPEND out_files
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_json.cpp"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_json.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_translation.cpp"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_translation.h")
|
|
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files ${ARGN})
|
|
|
|
CODEGEN_HANDLE_SVC_XML(${srcList} ${xmlFile_in})
|
|
ENDMACRO()
|
|
|
|
FIND_PACKAGE(PythonInterp 2.7 REQUIRED)
|
|
MACRO(CODEGEN_TOPIC_TYPEDEFS srcList xmlFile_in)
|
|
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
|
SET(inFile ${xmlFile_in})
|
|
IF(NOT IS_ABSOLUTE ${inFile})
|
|
SET(inFile ${CMAKE_CURRENT_SOURCE_DIR}/${inFile})
|
|
IF(NOT EXISTS ${inFile})
|
|
SET(inFile ${CMAKE_CURRENT_BINARY_DIR}/${inFile})
|
|
ENDIF()
|
|
ENDIF()
|
|
SET(prog ${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/codegen_simple.py)
|
|
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dts_types.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc_types.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_fts_types.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc_types.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_operator_rights.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_operator_rights.cpp"
|
|
"${CMAKE_BINARY_DIR}/share/Lts/sql/${svcNameOut}_operator_rights.sql"
|
|
)
|
|
# Generate TypeDefinitions for D|FTS|C
|
|
ADD_CUSTOM_COMMAND( OUTPUT ${out_files}
|
|
COMMAND ${CMAKE_COMMAND}
|
|
ARGS -E make_directory ${CMAKE_CURRENT_BINARY_DIR}
|
|
COMMAND ${CMAKE_COMMAND}
|
|
ARGS -E make_directory ${CMAKE_BINARY_DIR}/share/Lts/sql/
|
|
COMMAND ${PYTHON_EXECUTABLE}
|
|
ARGS ${prog} ALL
|
|
${inFile}
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
COMMAND ${PYTHON_EXECUTABLE}
|
|
ARGS ${prog} SQL
|
|
${inFile}
|
|
${CMAKE_BINARY_DIR}/share/Lts/sql
|
|
DEPENDS ${inFile}
|
|
${prog}
|
|
)
|
|
LIST(APPEND ${srcList} ${out_files})
|
|
SET_PROPERTY(GLOBAL APPEND PROPERTY CODEGEN_XML_FILES "${inFile}")
|
|
ENDMACRO()
|
|
|
|
MACRO(CODEGEN_CLIENT_TOPICS_IFC srcList xmlFile_in)
|
|
SET(options)
|
|
SET(oneValueArgs)
|
|
SET(multiValueArgs PARTS)
|
|
CMAKE_PARSE_ARGUMENTS(_CST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
|
|
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
|
IF(NOT _CST_PARTS)
|
|
SET(_CST_PARTS "DTC" "FTC")
|
|
ENDIF()
|
|
SET(in_files "")
|
|
SET(out_files "")
|
|
FOREACH(part ${_CST_PARTS})
|
|
IF(part STREQUAL "DTC")
|
|
LIST(APPEND in_files
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dtc.h.grantlee"
|
|
)
|
|
LIST(APPEND out_files
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc.h"
|
|
)
|
|
IF(NOT POLICY CMP0071)
|
|
QT5_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc.h")
|
|
ENDIF()
|
|
ELSEIF(part STREQUAL "FTC")
|
|
LIST(APPEND in_files
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_ftc.h.grantlee"
|
|
)
|
|
LIST(APPEND out_files
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc.h"
|
|
)
|
|
ELSE()
|
|
MESSAGE(FATAL_ERROR "Unkown part argument for CODEGEN_SERVER_TOPICS (${part})")
|
|
ENDIF()
|
|
ENDFOREACH()
|
|
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
|
|
ENDMACRO()
|
|
|
|
MACRO(CODEGEN_CLIENT_TOPICS_IMPL srcList xmlFile_in)
|
|
SET(options)
|
|
SET(oneValueArgs)
|
|
SET(multiValueArgs PARTS)
|
|
CMAKE_PARSE_ARGUMENTS(_CST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
|
|
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
|
IF(NOT _CST_PARTS)
|
|
SET(_CST_PARTS "DTC" "FTC")
|
|
ENDIF()
|
|
SET(in_files "")
|
|
SET(out_files "")
|
|
FOREACH(part ${_CST_PARTS})
|
|
IF(part STREQUAL "DTC")
|
|
LIST(APPEND in_files
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dtc_impl.h.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dtc_impl.cpp.grantlee"
|
|
)
|
|
LIST(APPEND out_files
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc_impl.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc_impl.cpp"
|
|
)
|
|
IF(NOT POLICY CMP0071)
|
|
QT5_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc_impl.h")
|
|
ENDIF()
|
|
ELSEIF(part STREQUAL "FTC")
|
|
LIST(APPEND in_files
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_ftc_impl.h.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_ftc_impl.cpp.grantlee"
|
|
)
|
|
LIST(APPEND out_files
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc_impl.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc_impl.cpp"
|
|
)
|
|
IF(NOT POLICY CMP0071)
|
|
QT5_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc_impl.h")
|
|
ENDIF()
|
|
ELSE()
|
|
MESSAGE(FATAL_ERROR "Unkown part argument for CODEGEN_SERVER_TOPICS (${part})")
|
|
ENDIF()
|
|
ENDFOREACH()
|
|
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
|
|
ENDMACRO()
|
|
|
|
MACRO(CODEGEN_SERVER_TOPICS srcList xmlFile_in)
|
|
SET(options)
|
|
SET(oneValueArgs)
|
|
SET(multiValueArgs PARTS)
|
|
CMAKE_PARSE_ARGUMENTS(_CST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
|
|
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
|
IF(NOT _CST_PARTS)
|
|
SET(_CST_PARTS "DTS" "FTS")
|
|
ENDIF()
|
|
SET(in_files "")
|
|
SET(out_files "")
|
|
FOREACH(part ${_CST_PARTS})
|
|
IF(part STREQUAL "DTS")
|
|
LIST(APPEND in_files
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dts.h.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dts_impl.h.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dts_impl.cpp.grantlee"
|
|
)
|
|
LIST(APPEND out_files
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dts.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dts_impl.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dts_impl.cpp"
|
|
)
|
|
ELSEIF(part STREQUAL "FTS")
|
|
LIST(APPEND in_files
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_fts.h.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_fts_impl.h.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_fts_impl.cpp.grantlee"
|
|
)
|
|
LIST(APPEND out_files
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_fts.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_fts_impl.h"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_fts_impl.cpp"
|
|
)
|
|
IF(NOT POLICY CMP0071)
|
|
QT5_WRAP_CPP(${srcList} ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_fts_impl.h)
|
|
ENDIF()
|
|
ELSE()
|
|
MESSAGE(FATAL_ERROR "Unkown part argument for CODEGEN_SERVER_TOPICS (${part})")
|
|
ENDIF()
|
|
ENDFOREACH()
|
|
|
|
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
|
|
ENDMACRO()
|
|
|
|
#
|
|
# TopicType Plugin
|
|
#
|
|
MACRO(CODEGEN_TOPIC_TYPE_PLUGIN srcList xmlFile_in)
|
|
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
|
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_topic_type_plugin.cpp.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_topic_type_plugin.h.grantlee"
|
|
)
|
|
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_topic_type_plugin.cpp"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_topic_type_plugin.h"
|
|
)
|
|
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
|
|
IF(NOT POLICY CMP0071)
|
|
QT5_WRAP_CPP(${srcList} ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_topic_type_plugin.h)
|
|
ENDIF()
|
|
ENDMACRO()
|
|
|
|
MACRO(CREATE_TOPIC_TYPE_PLUGIN xmlFile_in)
|
|
SET(_my_srcs "")
|
|
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
|
CODEGEN_TOPIC_TYPE_PLUGIN(_my_srcs ${xml_FILE})
|
|
|
|
STRING(SUBSTRING ${svcNameOut} 0 1 _ss1)
|
|
STRING(SUBSTRING ${svcNameOut} 1 -1 _ss2)
|
|
STRING(TOUPPER ${_ss1} _ss1)
|
|
SET(_commonLib "svc${_ss1}${_ss2}Common")
|
|
# mhhh
|
|
IF(svcNameOut STREQUAL "core")
|
|
SET(_commonLib ddscore)
|
|
ENDIF()
|
|
|
|
NGL_ADD_LIBRARY(WS AAR SV NO_TRANSLATION ${svcNameOut}TopicTypePlugin MODULE
|
|
${_my_srcs}
|
|
)
|
|
NGL_TARGET_LINK_LIBRARIES(${svcNameOut}TopicTypePlugin
|
|
topic_type_plugin
|
|
routing_plugin
|
|
ddscore
|
|
${_commonLib}
|
|
)
|
|
NGL_INSTALL_TARGET(${svcNameOut}TopicTypePlugin)
|
|
ENDMACRO()
|
|
|
|
#
|
|
# RecordReplay Plugin
|
|
#
|
|
MACRO(CODEGEN_RECORD_REPLAY_PLUGIN srcList xmlFile_in)
|
|
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
|
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_record_replay_plugin.cpp.grantlee"
|
|
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_record_replay_plugin.h.grantlee"
|
|
)
|
|
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_record_replay_plugin.cpp"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_record_replay_plugin.h"
|
|
)
|
|
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
|
|
IF(NOT POLICY CMP0071)
|
|
QT5_WRAP_CPP(${srcList} ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_record_replay_plugin.h)
|
|
ENDIF()
|
|
ENDMACRO()
|
|
|
|
MACRO(CREATE_RECORD_REPLAY_PLUGIN_INTERN xmlFile_in svcSourceList libtype)
|
|
SET(_my_srcs "")
|
|
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
|
CODEGEN_RECORD_REPLAY_PLUGIN(_my_srcs ${xml_FILE})
|
|
|
|
STRING(SUBSTRING ${svcNameOut} 0 1 _ss1)
|
|
STRING(SUBSTRING ${svcNameOut} 1 -1 _ss2)
|
|
STRING(TOUPPER ${_ss1} _ss1)
|
|
SET(_commonLib "svc${_ss1}${_ss2}Common")
|
|
# mhhh
|
|
IF(svcNameOut STREQUAL "core")
|
|
SET(_commonLib ddscore)
|
|
ENDIF()
|
|
|
|
LIST(APPEND ${svcSourceList} ${_my_srcs})
|
|
|
|
NGL_ADD_LIBRARY(SV AAR WS ${svcNameOut}RecordReplayPlugin ${libtype}
|
|
${_my_srcs}
|
|
)
|
|
NGL_TARGET_LINK_LIBRARIES(${svcNameOut}RecordReplayPlugin
|
|
RecordReplayPlugin
|
|
ddscore
|
|
ddsconnector
|
|
ddsdtc
|
|
ngldb
|
|
LtsUtilsCore
|
|
${_commonLib}
|
|
)
|
|
NGL_INSTALL_TARGET(${svcNameOut}RecordReplayPlugin)
|
|
NGL_TARGET_INCLUDE_DIRECTORIES(${svcNameOut}RecordReplayPlugin
|
|
PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../
|
|
${CMAKE_CURRENT_BINARY_DIR}/../
|
|
)
|
|
ENDMACRO()
|
|
|
|
MACRO(CREATE_RECORD_REPLAY_PLUGIN xmlFile_in svcSourceList)
|
|
CREATE_RECORD_REPLAY_PLUGIN_INTERN(${xmlFile_in} ${svcSourceList} MODULE)
|
|
ENDMACRO()
|
|
|
|
MACRO(CREATE_RECORD_REPLAY_PLUGIN_SHARED xmlFile_in)
|
|
CREATE_RECORD_REPLAY_PLUGIN_INTERN(${xmlFile_in} _unused SHARED)
|
|
ENDMACRO()
|
|
|
|
MACRO(CODEGEN_WRITE_SERVICEFILE_INFO)
|
|
GET_PROPERTY(idl_files GLOBAL PROPERTY CODEGEN_IDL_FILES)
|
|
LIST(REMOVE_DUPLICATES idl_files)
|
|
FILE(WRITE ${CMAKE_BINARY_DIR}/service_idl_files.txt "-- all available service idl files\n")
|
|
FOREACH(idl_file ${idl_files})
|
|
FILE(APPEND ${CMAKE_BINARY_DIR}/service_idl_files.txt "${idl_file}\n")
|
|
ENDFOREACH()
|
|
ENDMACRO()
|