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}}) 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}) 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}) 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) 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" ) 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() 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") 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() 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") 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()