#!/usr/bin/env python3 """ Filter GROUP3_TARGETS to include only Release 2 scope modules. Release 2 includes: AP3 (shared libs), AP4 (DDS), AP9 (tools/translations) Excluded modules from Release 2: - AlarmManagement (svcAlm*) - AssetManagement (svcAsm*) - AudioVideoManagement (svcAvm*) - CentralEffectSimulation (svcCes*) - CodificationManagement (svcCod*) - EffectShowManagement (svcEffectShow*) - Evaluations (svcEvl*) - ExerciseEventManagement (svcExm*) - FileManagement (svcFileManagement) - FilterManagement (svcFlt*) - GuezIedManagement (svcGim*) - InfrastructureManagement (svcIsm*) - MarkerManagement (svcMrk*) - Messaging (svcMessaging*) - MeteoDataManagement (svcMdm*) - NotificationManagement (svcNom*) - NmeaManagement (svcNmeaManagement*) - OcBaseDownload (svcOcBaseDownload) - OcSituationClient/Server (svcOcSituation*) - OnlineReports (svcOre*) - OperatorManagement (svcOpm*) - PlanEditor (svcPpm*) - PresentationManagement (svcPre*) - ProjectionWorkstation (svcPws*) - RecordingManagement (svcRec*) - ReportManagement (svcRep*) - RoutingServiceNG (svcRsn*) - ServiceManagement (svcScm*) - ScreenRecording (svcScrDummy) - ServiceMonitor (svcSmoDummy) - SituationMap (svcSom* - but keep svcMapDummy) - SituationReplayManagement (svcSrm*) - SoundManagement (svcSoundManagement) - TargetManagement (svcTgt*) - VideoOverlayManagement (svcVideoOverlayManagement) - WarehouseGuez (svcWhg*) Kept modules (Release 2 scope): - NGL* utilities - qtsingle* - wms_json_ds, tcpserver - LtsCoordinate, LtsCoordTrans (required core libs) - svcPdm* (ProjectDataManagement) - svcAes* (AreaEffectSimulation) - svcBld* (Building) - svcEsc* (EffectShowClient - kept based on context) - svcEsm* (ExerciseSimulation) - svcFlm* (FilterManagement - kept based on context) - svcGmpServer - svcMapDummy - svcMsg* (Messaging - kept based on context) - svcNme* (NMEA - kept based on context) - svcObd* (ODB - kept based on context) - svcOsc* (OSC - kept based on context) - svcOss* (OSS - kept based on context) - svcPedDummy - svcSituationReplay - svcSrp* (SRP - kept based on context) - Tests for kept modules """ # Current GROUP3_TARGETS from line 627 current_targets = "NGLLogger nglapplication nglcompression nglcoreapplication ngldb nglguiapplication nglsettings nglsingleapplication nglsinglecoreapplication ngltools ngltranslator nglwidgets qtsingleapplication qtsinglecoreapplication wms_json_ds tcpserver LtsCoordinate LtsCoordTrans svcPdmCommon svcPdmClient svcPdmServer svcProjectDataManagement pdmTests svcAesClient svcAesCommon svcAesServer svcAreaEffectSimulation svcAsmClient svcAsmCommon svcAsmServer svcAssetManagement svcAudioVideoManagement svcAvmClient svcAvmCommon svcAvmServer svcBldClient svcBldCommon svcCentralEffectSimulation svcCesClient svcCesCommon svcCesDDSCommon svcCesGeoPairingImpl svcCesServer svcCodClient svcCodCommon svcCodServer svcEemClient svcEemCommon svcEemServer svcEffectShowClient svcEscClient svcEscCommon svcEscServer svcEsmClient svcEsmCommon svcEsmServer svcEvlClient svcEvlCommon svcEvlServer svcExerciseEventManagement svcExmClient svcExmCommon svcExmServer svcFileManagement svcFilterManagement svcFlmClient svcFlmCommon svcFlmServer svcFltClient svcFltCommon svcFltServer svcGimClient svcGimCommon svcGimServer svcGmpServer svcGuezIedManagement svcIsmClient svcIsmCommon svcIsmServer svcMapDummy svcMdmClient svcMdmCommon svcMdmServer svcMessaging svcMeteoDataManagement svcMrkClient svcMrkCommon svcMrkServer svcMsgClient svcMsgCommon svcMsgServer svcNomClient svcNomCommon svcNomServer svcNotificationManagement svcNmeClient svcNmeCommon svcNmeServer svcNmeaManagement svcObdClient svcObdCommon svcObdServer svcOcBaseDownload svcOcSituationClient svcOcSituationServer svcOperatorManagement svcOpmClient svcOpmCommon svcOpmServer svcOreDummy svcOscClient svcOscCommon svcOscServer svcOssClient svcOssCommon svcOssServer svcPedDummy svcPpmClient svcPpmCommon svcPpmServer svcPreClient svcPreCommon svcPreServer svcPwsCommon svcRecCommon svcRecordingManagement svcRepClient svcRepCommon svcRepCommonExecutable svcRepServer svcReportAnalyzer svcReportGenerator svcScmClient svcScmCommon svcScmServer svcScrDummy svcServiceManagement svcSituationReplay svcSmoDummy svcSomClient svcSomCommon svcSomServer svcSoundManagement svcSrmCommon svcSrpClient svcSrpCommon svcSrpServer svcTgtClient svcTgtCommon svcTgtServer svcVideoOverlayManagement svcWarehouseGuez svcWhgClient svcWhgCommon svcWhgServer asmTests avmFtTests avmTests avmVcaTests cesTests eemTests evlTests exmDtUnitTest exmTests flmTests gmpTests ismTests mrkTests mvsTests nomTests opmTests ppmTests preTests repTests scmDtUnitTest srpFtTests tgtTests whgTests" # Modules to REMOVE (excluded from Release 2) remove_patterns = [ # AlarmManagement 'svcAlmClient', 'svcAlmCommon', 'svcAlmServer', 'almTests', # AssetManagement 'svcAsmClient', 'svcAsmCommon', 'svcAsmServer', 'asmTests', # AudioVideoManagement 'svcAvmClient', 'svcAvmCommon', 'svcAvmServer', 'avmTests', 'avmFtTests', 'avmVcaTests', # CentralEffectSimulation 'svcCesClient', 'svcCesCommon', 'svcCesDDSCommon', 'svcCesGeoPairingImpl', 'svcCesServer', 'svcCentralEffectSimulation', 'cesTests', # CodificationManagement 'svcCodClient', 'svcCodCommon', 'svcCodServer', # EffectShowManagement 'svcEffectShowClient', # Evaluations 'svcEvlClient', 'svcEvlCommon', 'svcEvlServer', 'evlTests', # ExerciseEventManagement 'svcExmClient', 'svcExmCommon', 'svcExmServer', 'svcExerciseEventManagement', 'exmTests', 'exmDtUnitTest', # FileManagement 'svcFileManagement', # FilterManagement 'svcFltClient', 'svcFltCommon', 'svcFltServer', # GuezIedManagement 'svcGimClient', 'svcGimCommon', 'svcGimServer', # InfrastructureManagement 'svcIsmClient', 'svcIsmCommon', 'svcIsmServer', 'ismTests', # MarkerManagement 'svcMrkClient', 'svcMrkCommon', 'svcMrkServer', 'mrkTests', # Messaging 'svcMessaging', 'svcMsgClient', 'svcMsgCommon', 'svcMsgServer', 'msgTests', # MeteoDataManagement 'svcMdmClient', 'svcMdmCommon', 'svcMdmServer', 'svcMeteoDataManagement', # NotificationManagement 'svcNomClient', 'svcNomCommon', 'svcNomServer', 'svcNotificationManagement', 'nomTests', # NmeaManagement 'svcNmeClient', 'svcNmeCommon', 'svcNmeServer', 'svcNmeaManagement', # OcBaseDownload 'svcOcBaseDownload', # OcSituationClient/Server 'svcOcSituationClient', 'svcOcSituationServer', # OnlineReports 'svcOreDummy', # OperatorManagement 'svcOpmClient', 'svcOpmCommon', 'svcOpmServer', 'opmTests', # PlanEditor 'svcPpmClient', 'svcPpmCommon', 'svcPpmServer', 'ppmTests', # PresentationManagement 'svcPreClient', 'svcPreCommon', 'svcPreServer', 'preTests', # ProjectionWorkstation 'svcPwsCommon', # RecordingManagement 'svcRecCommon', 'svcRecordingManagement', # ReportManagement 'svcRepClient', 'svcRepCommon', 'svcRepCommonExecutable', 'svcRepServer', 'svcReportAnalyzer', 'svcReportGenerator', 'repTests', # RoutingServiceNG 'svcRsn*', 'rsnTests', # ServiceManagement 'svcScmClient', 'svcScmCommon', 'svcScmServer', 'svcServiceManagement', 'scmTests', 'scmDtUnitTest', # ScreenRecording 'svcScrDummy', # ServiceMonitor 'svcSmoDummy', # SituationMap (keep svcMapDummy) 'svcSomClient', 'svcSomCommon', 'svcSomServer', 'svcSoundManagement', # SituationReplayManagement 'svcSrmCommon', # TargetManagement 'svcTgtClient', 'svcTgtCommon', 'svcTgtServer', 'tgtTests', # VideoOverlayManagement 'svcVideoOverlayManagement', # WarehouseGuez 'svcWarehouseGuez', 'svcWhgClient', 'svcWhgCommon', 'svcWhgServer', 'whgTests', # Other excluded 'mvsTests', 'gmpTests', ] # Parse current targets targets_list = current_targets.split() # Filter out excluded modules filtered_targets = [] removed_targets = [] for target in targets_list: # Check if target matches any removal pattern should_remove = False for pattern in remove_patterns: # Handle wildcards if pattern.endswith('*'): prefix = pattern[:-1] if target.startswith(prefix): should_remove = True break else: if target == pattern: should_remove = True break if should_remove: removed_targets.append(target) else: filtered_targets.append(target) print(f"Original targets: {len(targets_list)}") print(f"Removed targets: {len(removed_targets)}") print(f"Filtered targets: {len(filtered_targets)}") print("\n=== Removed targets ===") for t in sorted(removed_targets): print(f" {t}") print("\n=== Filtered GROUP3_TARGETS ===") print('GROUP3_TARGETS=(' + ' '.join(filtered_targets) + ')')