# # $Id$ # $HeadURL$ # $Author$ # INCLUDE(MacroRTIDDSGen) INCLUDE(MacroCodeGenIdl) SET(xml_FILE pdm_service.xml) # # --- Library svcPdmCommon -------------------------------------------------------------------------------- # SET(SRCS_common pdm_export.h pdm_to_string.cpp pdm_to_string.h logger.cpp logger.h ) # pdm_types.h was a migration-scaffolding stub with no qt5 counterpart and # no consumer; the stub in include/ was removed and the copy with it. # pdm_translation.h and pdm_enums.hpp stub copies (OFF-variant fallbacks whose # include/ sources were removed together with the other shadowing stubs): # with BUILD_GRANTLEE=ON and BUILD_RTI=ON the codegen writes the real files to # these build-dir paths, so the copies are gone rather than kept for forbidden # OFF variants. # Add current binary dir to include path for generated headers NGL_TARGET_INCLUDE_DIRECTORIES(${PDM_COMMON_TARGET} PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ) # Generate pdm_enums.idl / pdm.idl IF(BUILD_RTI) CODEGEN_IDL_SVC(SRCS_common ${xml_FILE}) ENDIF() # Generate pdm_db.h and pdm_db_impl - requires Grantlee IF(BUILD_GRANTLEE) # Generate pdm_db.h CODEGEN_DATABASE_STRUCTS(SRCS_common ${xml_FILE}) # Generate pdm_db_impl.cpp/.h, CODEGEN_DATABASE_SQL(SRCS_common ${xml_FILE}) ELSE() # Use pre-generated stub files when BUILD_GRANTLEE=OFF CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/pdm_db_structs.h.stub ${CMAKE_CURRENT_BINARY_DIR}/pdm_db_structs.h COPYONLY ) CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/pdm_db_structs.cpp.stub ${CMAKE_CURRENT_BINARY_DIR}/pdm_db_structs.cpp COPYONLY ) CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/pdm_db.h.stub ${CMAKE_CURRENT_BINARY_DIR}/pdm_db.h COPYONLY ) CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/pdm_db_impl.h.stub ${CMAKE_CURRENT_BINARY_DIR}/pdm_db_impl.h COPYONLY ) CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/pdm_db_impl.cpp.stub ${CMAKE_CURRENT_BINARY_DIR}/pdm_db_impl.cpp COPYONLY ) LIST(APPEND SRCS_common ${CMAKE_CURRENT_BINARY_DIR}/pdm_db_structs.h ${CMAKE_CURRENT_BINARY_DIR}/pdm_db_structs.cpp ${CMAKE_CURRENT_BINARY_DIR}/pdm_db.h ${CMAKE_CURRENT_BINARY_DIR}/pdm_db_impl.h ${CMAKE_CURRENT_BINARY_DIR}/pdm_db_impl.cpp ) ENDIF() # Generate *.cpp/*.hpp from idl IF(BUILD_RTI) RTIDDSGEN(SRCS_common pdm_enums.idl) RTIDDSGEN(SRCS_common pdm.idl) ENDIF() # Generate pdm_dt[s,c]_types.h, pdm_ft[s,c]_types.h IF(BUILD_RTI) CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE}) ENDIF() # generate pdm_[d|f]tc.h IF(BUILD_RTI) CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE}) ENDIF() # Create svcPdmCommon library with common sources SET(PDM_COMMON_TARGET svcPdmCommon) NGL_ADD_LIBRARY(AAR SV WS HLA ${PDM_COMMON_TARGET} SHARED ${SRCS_common}) generate_export_header(${PDM_COMMON_TARGET} EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/svcpdmcommon_export.h" ) NGL_TARGET_INCLUDE_DIRECTORIES(${PDM_COMMON_TARGET} PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/../ ${CMAKE_CURRENT_SOURCE_DIR}/../ ) NGL_TARGET_LINK_LIBRARIES(${PDM_COMMON_TARGET} PRIVATE RTI::nddscpp2 PUBLIC Qt6::Core $,ddscore,> NGLLogger LtsUtilsCore ngldb ) NGL_INSTALL_TARGET(${PDM_COMMON_TARGET}) # # --- Library svcPdmClient -------------------------------------------------------------------------------- # SET(SRCS_client pdm_export.h pdm_dtc_impl_custom.cpp pdm_dtc_impl_custom.h ) # generate pdm_ftc_impl.[cpp|h] IF(BUILD_RTI) CODEGEN_CLIENT_TOPICS_IMPL(SRCS_client ${xml_FILE}) ENDIF() NGL_ADD_LIBRARY(WS AAR SV HLA svcPdmClient SHARED ${SRCS_client}) SET_TARGET_PROPERTIES(svcPdmClient PROPERTIES AUTOMOC ON) NGL_TARGET_INCLUDE_DIRECTORIES(svcPdmClient PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/../ ${CMAKE_CURRENT_SOURCE_DIR}/../ ) NGL_TARGET_LINK_LIBRARIES(svcPdmClient PRIVATE RTI::nddscpp2 $,ddsconnector,> PUBLIC ${PDM_COMMON_TARGET} Qt6::Core ddsftc ) NGL_INSTALL_TARGET(svcPdmClient) # # --- Library svcPdmServer -------------------------------------------------------------------------------- # SET(SRCS_server pdm_export.h ) # generate pdm_[d|f]ts.h, pdm_[d|f]ts_impl.[cpp|h] IF(BUILD_RTI) CODEGEN_SERVER_TOPICS(SRCS_server ${xml_FILE}) ENDIF() NGL_ADD_LIBRARY(WS AAR SV svcPdmServer SHARED ${SRCS_server}) NGL_TARGET_INCLUDE_DIRECTORIES(svcPdmServer PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/../ ${CMAKE_CURRENT_SOURCE_DIR}/../ ) NGL_TARGET_LINK_LIBRARIES(svcPdmServer PRIVATE RTI::nddscpp2 $,ddsconnector,> $,ddsfts,> PUBLIC ${PDM_COMMON_TARGET} ngldb ) NGL_INSTALL_TARGET(svcPdmServer) # # --- Topic Type Plugin -------------------------------------------------------------- # IF(BUILD_RTI) CREATE_TOPIC_TYPE_PLUGIN(${xml_FILE}) ENDIF() # # --- Executable svcProjectDataManagement (sPDM) ------------------------------------------------- # LIST(APPEND SRCS_exe convert_db_to_dds.h dds_handler.cpp dds_handler.h main.cpp main_handler.cpp main_handler.h settings.cpp settings.h static_data_publisher.h translation.cpp translation.h chargetype_rename.cpp chargetype_rename.h static_pvsan_import.cpp static_pvsan_import.h ${xml_FILE} ) # Generate pdm.sql, pdm.xml IF(BUILD_RTI) CODEGEN_SQL(SRCS_exe ${xml_FILE}) ENDIF() NGL_ADD_SVC_ICON(SRCS_exe) NGL_ADD_EXECUTABLE(AAR SV svcProjectDataManagement ${SRCS_exe}) NGL_TARGET_LINK_LIBRARIES(svcProjectDataManagement Qt6::Core svcCoreClient ${PDM_COMMON_TARGET} svcPdmServer $,ddsconnector,> nglsettings ProjectConfig LtsCommandLineParser LtsWebSocketServer NGLLogger nglcoreapplication ngltools ) NGL_INSTALL_TARGET(svcProjectDataManagement) NGL_INSTALL(AAR SV FILES log4cxx_pdm.props DESTINATION bin) NGL_ADD_TARGET_LINK(svcProjectDataManagement sPDM) # Uncomment if necessary #ADD_SUBDIRECTORY(UnitTests) ADD_SUBDIRECTORY(ModuleTests)