parameters: (self, target_platform, identifier)
return_statement: return sdk_source_full_path, sdk_enabled, sdk_roles, sdk_optional
docstring: Resolves a third party library configuration based on the target platform and 3rd party identifier (from SetupAssistantConfig.json)
  
          :param target_platform:     The target platform to resolve
          :param identifier:          The 3rd party alias identifier to lookup
          :return:                    Tuple representing a 3rd party setup:
                                          source path: The absolute path to the 3rd party library
                                          enabled:     Flag to indicate if the library is enabled or not
                                          roles:       Roles that are configured for the 3rd party library in SetupAssistantConfig.json
                                          optional:    Flag to indicate if the sdk is optional (ie not a critical SDK) where no specs can be built
docstring_summary: Resolves a third party library configuration based on the target platform and 3rd party identifier (from SetupAssistantConfig.json)
docstring_tokens: Resolves a third party library configuration based on the target platform and 3rd party identifier ( from SetupAssistantConfig . json )
function: def get_third_party_path(self, target_platform, identifier):
          """
          Resolves a third party library configuration based on the target platform and 3rd party identifier (from SetupAssistantConfig.json)
  
          :param target_platform:     The target platform to resolve
          :param identifier:          The 3rd party alias identifier to lookup
          :return:                    Tuple representing a 3rd party setup:
                                          source path: The absolute path to the 3rd party library
                                          enabled:     Flag to indicate if the library is enabled or not
                                          roles:       Roles that are configured for the 3rd party library in SetupAssistantConfig.json
                                          optional:    Flag to indicate if the sdk is optional (ie not a critical SDK) where no specs can be built
          """
  
          if not self.content:
              raise Errors.WafError('3rd Party settings file not initialized properly')
  
          content_sdks = self.content.get("SDKs")
          sdk_content = content_sdks.get(identifier)
          if not sdk_content:
              raise Errors.WafError("3rd party identifier '{}' is not enabled for target platform '{}'".format(identifier, target_platform))
          if not sdk_content.get("validated", True):
              raise Errors.WafError("3rd Party alias '{}' not validated locally.".format(identifier))
          sdk_enabled = sdk_content.get('enabled')
          sdk_optional = sdk_content.get('optional')
          sdk_roles = sdk_content.get('roles')
  
          if not target_platform:
              # If the target platform is not specified, then use the base source
              sdk_source = sdk_content.get("base_source")
              if not sdk_source:
                  raise Errors.WafError("[ERROR] 3rd Party settings file is invalid (Missing SDKs/{}/base_source)".format(identifier))
          else:
  
              sdk_content_targets = sdk_content.get("targets")
              if not sdk_content_targets:
                  raise Errors.WafError("[ERROR] 3rd Party settings file is invalid (Missing SDKs/{}/targets)".format(identifier))
  
              sdk_content_target = sdk_content_targets.get(target_platform)
              if not sdk_content_target:
                  raise Errors.WafError("[ERROR] 3rd Party settings file is invalid (Missing SDKs/targets/{})".format(target_platform))
  
              sdk_source = sdk_content_target.get("source")
  
              # Get any target specific override for 'optional' and 'roles'
              sdk_optional = sdk_content_target.get('optional', sdk_optional)
              sdk_roles = sdk_content_target.get('roles', sdk_roles)
  
          third_party_root = self.content.get("3rdPartyRoot")
          sdk_source_full_path = os.path.normpath(os.path.join(third_party_root, sdk_source))
  
          if not os.path.exists(sdk_source_full_path) and sdk_enabled and not sdk_optional:
              self.ctx.warn_once('3rd party alias {} references a missing local SDK path: {}. Make sure it is available through Setup Assistant'.format(identifier, sdk_source_full_path))
  
          return sdk_source_full_path, sdk_enabled, sdk_roles, sdk_optional
function_tokens: def get_third_party_path ( self , target_platform , identifier ) : if not self . content : raise Errors . WafError ( '3rd Party settings file not initialized properly' ) content_sdks = self . content . get ( "SDKs" ) sdk_content = content_sdks . get ( identifier ) if not sdk_content : raise Errors . WafError ( "3rd party identifier '{}' is not enabled for target platform '{}'" . format ( identifier , target_platform ) ) if not sdk_content . get ( "validated" , True ) : raise Errors . WafError ( "3rd Party alias '{}' not validated locally." . format ( identifier ) ) sdk_enabled = sdk_content . get ( 'enabled' ) sdk_optional = sdk_content . get ( 'optional' ) sdk_roles = sdk_content . get ( 'roles' ) if not target_platform : # If the target platform is not specified, then use the base source sdk_source = sdk_content . get ( "base_source" ) if not sdk_source : raise Errors . WafError ( "[ERROR] 3rd Party settings file is invalid (Missing SDKs/{}/base_source)" . format ( identifier ) ) else : sdk_content_targets = sdk_content . get ( "targets" ) if not sdk_content_targets : raise Errors . WafError ( "[ERROR] 3rd Party settings file is invalid (Missing SDKs/{}/targets)" . format ( identifier ) ) sdk_content_target = sdk_content_targets . get ( target_platform ) if not sdk_content_target : raise Errors . WafError ( "[ERROR] 3rd Party settings file is invalid (Missing SDKs/targets/{})" . format ( target_platform ) ) sdk_source = sdk_content_target . get ( "source" ) # Get any target specific override for 'optional' and 'roles' sdk_optional = sdk_content_target . get ( 'optional' , sdk_optional ) sdk_roles = sdk_content_target . get ( 'roles' , sdk_roles ) third_party_root = self . content . get ( "3rdPartyRoot" ) sdk_source_full_path = os . path . normpath ( os . path . join ( third_party_root , sdk_source ) ) if not os . path . exists ( sdk_source_full_path ) and sdk_enabled and not sdk_optional : self . ctx . warn_once ( '3rd party alias {} references a missing local SDK path: {}. Make sure it is available through Setup Assistant' . format ( identifier , sdk_source_full_path ) ) return sdk_source_full_path , sdk_enabled , sdk_roles , sdk_optional