| | | | | | | | | | | | | | | | | | | | | |
<?xml version="1.0" standalone="no" encoding="windows-1252"?> |
<!-- Field: Doc-Info; Name: Generator; Value: GoFiler Complete; Version: 5.10b --> |
<!-- Field: Doc-Info; Name: VendorURI; Value: https://www.novaworks.com --> |
<!-- Field: Doc-Info; Name: Source; Value: spi_20fa1%2D2020.xfr; Date: 2021%2D10%2D29T16:00:28Z --> |
<!-- Field: Doc-Info; Name: Status; Value: 0x00000000 --> |
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd"> |
| <link:roleRef roleURI="http://spisolar.com/role/DocumentAndEntityInformation" xlink:href="spi-20201231.xsd#DocumentAndEntityInformation" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/StatementConsolidatedBalanceSheets" xlink:href="spi-20201231.xsd#StatementConsolidatedBalanceSheets" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:href="spi-20201231.xsd#ConsolidatedBalanceSheetsParenthetical" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/ConsolidatedStatementsOfOperations" xlink:href="spi-20201231.xsd#ConsolidatedStatementsOfOperations" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" xlink:href="spi-20201231.xsd#StatementConsolidatedStatementsOfComprehensiveLoss" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/ConsolidatedStatementsOfEquityDeficit" xlink:href="spi-20201231.xsd#ConsolidatedStatementsOfEquityDeficit" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/ConsolidatedStatementsOfCashFlows" xlink:href="spi-20201231.xsd#ConsolidatedStatementsOfCashFlows" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/ReconciliationOfCash" xlink:href="spi-20201231.xsd#ReconciliationOfCash" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/DescriptionOfBusinessAndOrganization" xlink:href="spi-20201231.xsd#DescriptionOfBusinessAndOrganization" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/LiquidityCondition" xlink:href="spi-20201231.xsd#LiquidityCondition" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="spi-20201231.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Disposition" xlink:href="spi-20201231.xsd#Disposition" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/BusinessAcquisitions" xlink:href="spi-20201231.xsd#BusinessAcquisitions" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/AccountsReceivableNet" xlink:href="spi-20201231.xsd#AccountsReceivableNet" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/InventoriesNet" xlink:href="spi-20201231.xsd#InventoriesNet" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/ProjectAssets" xlink:href="spi-20201231.xsd#ProjectAssets" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/PrepaidExpensesAndOtherCurrentAssets" xlink:href="spi-20201231.xsd#PrepaidExpensesAndOtherCurrentAssets" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/IntangibleAssetsNet" xlink:href="spi-20201231.xsd#IntangibleAssetsNet" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/PropertyPlantAndEquipmentNet" xlink:href="spi-20201231.xsd#PropertyPlantAndEquipmentNet" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/FairValueMeasurement" xlink:href="spi-20201231.xsd#FairValueMeasurement" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/AccruedLiabilities" xlink:href="spi-20201231.xsd#AccruedLiabilities" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Short-termBorrowingsAndLong-termBorrowings" xlink:href="spi-20201231.xsd#Short-termBorrowingsAndLong-termBorrowings" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/ConvertibleBonds" xlink:href="spi-20201231.xsd#ConvertibleBonds" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/AmountDueToAffiliate" xlink:href="spi-20201231.xsd#AmountDueToAffiliate" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/OrdinaryShares" xlink:href="spi-20201231.xsd#OrdinaryShares" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/NoncontrollingInterests" xlink:href="spi-20201231.xsd#NoncontrollingInterests" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Share-basedCompensation" xlink:href="spi-20201231.xsd#Share-basedCompensation" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/IncomeTaxes" xlink:href="spi-20201231.xsd#IncomeTaxes" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/NetLossPerShare" xlink:href="spi-20201231.xsd#NetLossPerShare" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Leases" xlink:href="spi-20201231.xsd#Leases" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/CommitmentsAndContingencies" xlink:href="spi-20201231.xsd#CommitmentsAndContingencies" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/ConcentrationRisk" xlink:href="spi-20201231.xsd#ConcentrationRisk" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/RelatedPartyTransactions" xlink:href="spi-20201231.xsd#RelatedPartyTransactions" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/SubsequentEvents" xlink:href="spi-20201231.xsd#SubsequentEvents" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="spi-20201231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/DescriptionOfBusinessAndOrganizationTables" xlink:href="spi-20201231.xsd#DescriptionOfBusinessAndOrganizationTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:href="spi-20201231.xsd#SummaryOfSignificantAccountingPoliciesTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/DispositionTables" xlink:href="spi-20201231.xsd#DispositionTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/AcquisitionsTables" xlink:href="spi-20201231.xsd#AcquisitionsTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/AccountsReceivableNetTables" xlink:href="spi-20201231.xsd#AccountsReceivableNetTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/InventoriesNetTables" xlink:href="spi-20201231.xsd#InventoriesNetTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/ProjectAssetsNetTables" xlink:href="spi-20201231.xsd#ProjectAssetsNetTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/PrepaidExpensesAndOtherCurrentAssetsNetTables" xlink:href="spi-20201231.xsd#PrepaidExpensesAndOtherCurrentAssetsNetTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/IntangibleAssetsNetTables" xlink:href="spi-20201231.xsd#IntangibleAssetsNetTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/PropertyPlantAndEquipmentNetTables" xlink:href="spi-20201231.xsd#PropertyPlantAndEquipmentNetTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/FairValueMeasurementTables" xlink:href="spi-20201231.xsd#FairValueMeasurementTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/AccruedLiabilitiesTables" xlink:href="spi-20201231.xsd#AccruedLiabilitiesTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Short-termBorrowingsAndLong-termBorrowingsTables" xlink:href="spi-20201231.xsd#Short-termBorrowingsAndLong-termBorrowingsTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/ConvertibleBondsTables" xlink:href="spi-20201231.xsd#ConvertibleBondsTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/AmountDueToAffiliateTables" xlink:href="spi-20201231.xsd#AmountDueToAffiliateTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Share-basedCompensationTables" xlink:href="spi-20201231.xsd#Share-basedCompensationTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/IncomeTaxesTables" xlink:href="spi-20201231.xsd#IncomeTaxesTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/NetLossPerShareTables" xlink:href="spi-20201231.xsd#NetLossPerShareTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/LeasesTables" xlink:href="spi-20201231.xsd#LeasesTables" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/DescriptionOfBusinessAndOrganizationDetailsNarrative" xlink:href="spi-20201231.xsd#DescriptionOfBusinessAndOrganizationDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/GoingConcernDetailsNarrative" xlink:href="spi-20201231.xsd#GoingConcernDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/SummaryOfSignificantAccountingPoliciesDetails-PpeUsefulLives" xlink:href="spi-20201231.xsd#SummaryOfSignificantAccountingPoliciesDetails-PpeUsefulLives" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/SummaryOfSignificantAccountingPoliciesDetails-DisaggregationOfRevenueByRevenueStream" xlink:href="spi-20201231.xsd#SummaryOfSignificantAccountingPoliciesDetails-DisaggregationOfRevenueByRevenueStream" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/SummaryOfSignificantAccountingPoliciesDetails-ContractBalance" xlink:href="spi-20201231.xsd#SummaryOfSignificantAccountingPoliciesDetails-ContractBalance" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/DisclosureSummaryOfSignificantAccountingPoliciesCapitalizedInterestDetails" xlink:href="spi-20201231.xsd#DisclosureSummaryOfSignificantAccountingPoliciesCapitalizedInterestDetails" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:href="spi-20201231.xsd#SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/DispositionDetails-StatementOfOperation" xlink:href="spi-20201231.xsd#DispositionDetails-StatementOfOperation" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/DispositionDetailsNarrative" xlink:href="spi-20201231.xsd#DispositionDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/AcquisitionsDetails-AllocationOfPurchasePrice" xlink:href="spi-20201231.xsd#AcquisitionsDetails-AllocationOfPurchasePrice" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/AcquisitionsDetailsNarrative" xlink:href="spi-20201231.xsd#AcquisitionsDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/AccountsReceivableNetDetails-AccountsReceivable" xlink:href="spi-20201231.xsd#AccountsReceivableNetDetails-AccountsReceivable" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/AccountsReceivableNetDetails-AllowanceForDoubtfulAccounts" xlink:href="spi-20201231.xsd#AccountsReceivableNetDetails-AllowanceForDoubtfulAccounts" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/AccountsReceivableNetDetailsNarrative" xlink:href="spi-20201231.xsd#AccountsReceivableNetDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/InventoriesNetDetails" xlink:href="spi-20201231.xsd#InventoriesNetDetails" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/InventoriesNetDetailsNarrative" xlink:href="spi-20201231.xsd#InventoriesNetDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/ProjectAssetsNetDetails" xlink:href="spi-20201231.xsd#ProjectAssetsNetDetails" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/ProjectAssetsNetDetailsNarrative" xlink:href="spi-20201231.xsd#ProjectAssetsNetDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/PrepaidExpensesAndOtherCurrentAssetsNetDetails" xlink:href="spi-20201231.xsd#PrepaidExpensesAndOtherCurrentAssetsNetDetails" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/PrepaidExpensesAndOtherCurrentAssetsNetDetailsNarrative" xlink:href="spi-20201231.xsd#PrepaidExpensesAndOtherCurrentAssetsNetDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/IntangibleAssetsNetDetails-IntangibleAssets" xlink:href="spi-20201231.xsd#IntangibleAssetsNetDetails-IntangibleAssets" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/IntangibleAssetsNetDetails-FutureAmortization" xlink:href="spi-20201231.xsd#IntangibleAssetsNetDetails-FutureAmortization" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/IntangibleAssetsNetDetailsNarrative" xlink:href="spi-20201231.xsd#IntangibleAssetsNetDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/PropertyPlantAndEquipmentNetDetails" xlink:href="spi-20201231.xsd#PropertyPlantAndEquipmentNetDetails" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/PropertyPlantAndEquipmentNetDetailsNarrative" xlink:href="spi-20201231.xsd#PropertyPlantAndEquipmentNetDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/FairValueMeasurementDetails-IliadAndStreetervilleCapital" xlink:href="spi-20201231.xsd#FairValueMeasurementDetails-IliadAndStreetervilleCapital" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/FairValueMeasurementDetails-Warrants" xlink:href="spi-20201231.xsd#FairValueMeasurementDetails-Warrants" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/FairValueMeasurementDetailsNarrative" xlink:href="spi-20201231.xsd#FairValueMeasurementDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/AccruedLiabilitiesDetails" xlink:href="spi-20201231.xsd#AccruedLiabilitiesDetails" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Short-termBorrowingsAndLong-termBorrowingsDetails-Debt" xlink:href="spi-20201231.xsd#Short-termBorrowingsAndLong-termBorrowingsDetails-Debt" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Short-termBorrowingsAndLong-termBorrowingsDetails-Maturities" xlink:href="spi-20201231.xsd#Short-termBorrowingsAndLong-termBorrowingsDetails-Maturities" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Short-termBorrowingsAndLong-termBorrowingsDetailsNarrative" xlink:href="spi-20201231.xsd#Short-termBorrowingsAndLong-termBorrowingsDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/ConvertibleBondsDetails" xlink:href="spi-20201231.xsd#ConvertibleBondsDetails" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/ConvertibleBondsDetailsNarrative" xlink:href="spi-20201231.xsd#ConvertibleBondsDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/AmountDueToAffiliateDetails" xlink:href="spi-20201231.xsd#AmountDueToAffiliateDetails" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/AmountDueToAffiliateDetailsNarrative" xlink:href="spi-20201231.xsd#AmountDueToAffiliateDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/OrdinarySharesDetailsNarrative" xlink:href="spi-20201231.xsd#OrdinarySharesDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/NoncontrollingInterestsDetailsNarrative" xlink:href="spi-20201231.xsd#NoncontrollingInterestsDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Share-basedCompensationDetails-Stock-basedCompensationExpenseByAwardType" xlink:href="spi-20201231.xsd#Share-basedCompensationDetails-Stock-basedCompensationExpenseByAwardType" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Share-basedCompensationDetails-CompensationExpenseByLineItem" xlink:href="spi-20201231.xsd#Share-basedCompensationDetails-CompensationExpenseByLineItem" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Share-basedCompensationDetails-Assumptions" xlink:href="spi-20201231.xsd#Share-basedCompensationDetails-Assumptions" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Share-basedCompensationDetails-OptionActivity" xlink:href="spi-20201231.xsd#Share-basedCompensationDetails-OptionActivity" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Share-basedCompensationDetails-OptionsByExercisePrice" xlink:href="spi-20201231.xsd#Share-basedCompensationDetails-OptionsByExercisePrice" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Share-basedCompensationDetails-Rsus" xlink:href="spi-20201231.xsd#Share-basedCompensationDetails-Rsus" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Share-basedCompensationDetails-Non-vestedOptions" xlink:href="spi-20201231.xsd#Share-basedCompensationDetails-Non-vestedOptions" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/Share-basedCompensationDetailsNarrative" xlink:href="spi-20201231.xsd#Share-basedCompensationDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/IncomeTaxesDetails-LossBeforeProvision" xlink:href="spi-20201231.xsd#IncomeTaxesDetails-LossBeforeProvision" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/IncomeTaxesDetails-ProvisionForIncomeTaxes" xlink:href="spi-20201231.xsd#IncomeTaxesDetails-ProvisionForIncomeTaxes" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/IncomeTaxesDetails-TaxReconciliation" xlink:href="spi-20201231.xsd#IncomeTaxesDetails-TaxReconciliation" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/IncomeTaxesDetails-DeferredIncomeTaxes" xlink:href="spi-20201231.xsd#IncomeTaxesDetails-DeferredIncomeTaxes" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/IncomeTaxesDetailsNarrative" xlink:href="spi-20201231.xsd#IncomeTaxesDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/NetLossPerShareDetails-BasicAndDiluted" xlink:href="spi-20201231.xsd#NetLossPerShareDetails-BasicAndDiluted" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/NetLossPerShareDetails-AntidilutiveShares" xlink:href="spi-20201231.xsd#NetLossPerShareDetails-AntidilutiveShares" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/LeasesDetails-MaturityOfLeaseLiabilities" xlink:href="spi-20201231.xsd#LeasesDetails-MaturityOfLeaseLiabilities" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/LeasesDetails-SupplementalInformationRelatedToOperatingLeases" xlink:href="spi-20201231.xsd#LeasesDetails-SupplementalInformationRelatedToOperatingLeases" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/LeasesDetailsNarrative" xlink:href="spi-20201231.xsd#LeasesDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/CommitmentsAndContingenciesDetailsNarrative" xlink:href="spi-20201231.xsd#CommitmentsAndContingenciesDetailsNarrative" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/ConcentrationRiskDetails" xlink:href="spi-20201231.xsd#ConcentrationRiskDetails" xlink:type="simple"/> |
| <link:roleRef roleURI="http://spisolar.com/role/RelatedPartyTransactionsDetailsNarrative" xlink:href="spi-20201231.xsd#RelatedPartyTransactionsDetailsNarrative" xlink:type="simple"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/DocumentAndEntityInformation" xlink:title="00000001 - Document - Document and Entity Information"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/StatementConsolidatedBalanceSheets" xlink:title="00000002 - Statement - CONSOLIDATED BALANCE SHEETS"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaapAssetsCurrent"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaapCashAndCashEquivalentsAtCarryingValue"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapCashAndCashEquivalentsAtCarryingValue" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedCash" xlink:label="loc_us-gaapRestrictedCash"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapRestrictedCash" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="loc_us-gaapAccountsReceivableNetCurrent"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapAccountsReceivableNetCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapInventoryNet" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_ProjectAssetsCurrent" xlink:label="loc_spiProjectAssetsCurrent"/> |
| | <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_spiProjectAssetsCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="loc_us-gaapPrepaidExpenseAndOtherAssetsCurrent"/> |
| | <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapPrepaidExpenseAndOtherAssetsCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DueFromRelatedPartiesCurrent" xlink:label="loc_us-gaapDueFromRelatedPartiesCurrent"/> |
| | <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapDueFromRelatedPartiesCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Assets" xlink:label="loc_us-gaapAssets"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapAssetsCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaapIntangibleAssetsNetExcludingGoodwill"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapIntangibleAssetsNetExcludingGoodwill" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="loc_us-gaapGoodwill"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapGoodwill" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NontradeReceivablesNoncurrent" xlink:label="loc_us-gaapNontradeReceivablesNoncurrent"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapNontradeReceivablesNoncurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet"/> |
| | <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_ProjectAssetsNoncurrent" xlink:label="loc_spiProjectAssetsNoncurrent"/> |
| | <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_spiProjectAssetsNoncurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentsInAffiliatesSubsidiariesAssociatesAndJointVentures" xlink:label="loc_us-gaapInvestmentsInAffiliatesSubsidiariesAssociatesAndJointVentures"/> |
| | <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapInvestmentsInAffiliatesSubsidiariesAssociatesAndJointVentures" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset"/> |
| | <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="loc_us-gaapDeferredIncomeTaxAssetsNet"/> |
| | <link:calculationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapDeferredIncomeTaxAssetsNet" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaapLiabilitiesCurrent"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="loc_us-gaapAccountsPayableCurrent"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapAccountsPayableCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="loc_us-gaapAccruedLiabilitiesCurrent"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapAccruedLiabilitiesCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtCurrent" xlink:label="loc_us-gaapDebtCurrent"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapDebtCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DueToAffiliateCurrent" xlink:label="loc_us-gaapDueToAffiliateCurrent"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapDueToAffiliateCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_ConsiderationPayable" xlink:label="loc_spiConsiderationPayable"/> |
| | <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_spiConsiderationPayable" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilitiesCurrent" xlink:label="loc_us-gaapDerivativeLiabilitiesCurrent"/> |
| | <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapDerivativeLiabilitiesCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent"/> |
| | <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:label="loc_us-gaapProductWarrantyAccrualClassifiedCurrent"/> |
| | <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapProductWarrantyAccrualClassifiedCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="loc_us-gaapContractWithCustomerLiabilityCurrent"/> |
| | <link:calculationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapContractWithCustomerLiabilityCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_IncomeTaxesPayableReceivable" xlink:label="loc_spiIncomeTaxesPayableReceivable"/> |
| | <link:calculationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_spiIncomeTaxesPayableReceivable" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_ConvertibleBondsCurrent" xlink:label="loc_spiConvertibleBondsCurrent"/> |
| | <link:calculationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_spiConvertibleBondsCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaapLiabilities"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilities" xlink:to="loc_us-gaapLiabilitiesCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="loc_us-gaapLongTermDebtNoncurrent"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilities" xlink:to="loc_us-gaapLongTermDebtNoncurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DueToAffiliateNoncurrent" xlink:label="loc_us-gaapDueToAffiliateNoncurrent"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilities" xlink:to="loc_us-gaapDueToAffiliateNoncurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilities" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="loc_us-gaapDeferredIncomeTaxLiabilitiesNet"/> |
| | <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilities" xlink:to="loc_us-gaapDeferredIncomeTaxLiabilitiesNet" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockValueOutstanding" xlink:label="loc_us-gaapCommonStockValueOutstanding"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapCommonStockValueOutstanding" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="loc_us-gaapAdditionalPaidInCapitalCommonStock"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapAdditionalPaidInCapitalCommonStock" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="loc_us-gaapAccumulatedOtherComprehensiveIncomeLossNetOfTax"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapAccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaapRetainedEarningsAccumulatedDeficit"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapRetainedEarningsAccumulatedDeficit" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:label="loc_us-gaapStockholdersEquityIncludingPortionAttributableToNoncontrollingInterest"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:to="loc_us-gaapStockholdersEquity" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MinorityInterest" xlink:label="loc_us-gaapMinorityInterest"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:to="loc_us-gaapMinorityInterest" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquity"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquity" xlink:to="loc_us-gaapLiabilities" xlink:type="arc" weight="1"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquity" xlink:to="loc_us-gaapStockholdersEquityIncludingPortionAttributableToNoncontrollingInterest" xlink:type="arc" weight="1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:title="00000003 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/ConsolidatedStatementsOfOperations" xlink:title="00000004 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaapGrossProfit"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Revenues" xlink:label="loc_us-gaapRevenues"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapGrossProfit" xlink:to="loc_us-gaapRevenues" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfRevenue" xlink:label="loc_us-gaapCostOfRevenue"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapGrossProfit" xlink:to="loc_us-gaapCostOfRevenue" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingExpenses" xlink:label="loc_us-gaapOperatingExpenses"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="loc_us-gaapGeneralAndAdministrativeExpense"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapGeneralAndAdministrativeExpense" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="loc_us-gaapSellingAndMarketingExpense"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapSellingAndMarketingExpense" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_ImpairmentReverseChargesOnPropertyPlantAndEquipment" xlink:label="loc_spiImpairmentReverseChargesOnPropertyPlantAndEquipment"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_spiImpairmentReverseChargesOnPropertyPlantAndEquipment" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_ProvisionReverseForDoubtfulAccountsNotesAndOtherReceivables" xlink:label="loc_spiProvisionReverseForDoubtfulAccountsNotesAndOtherReceivables"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_spiProvisionReverseForDoubtfulAccountsNotesAndOtherReceivables" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ImpairmentOfOngoingProject" xlink:label="loc_us-gaapImpairmentOfOngoingProject"/> |
| | <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapImpairmentOfOngoingProject" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaapOperatingIncomeLoss"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingIncomeLoss" xlink:to="loc_us-gaapGrossProfit" xlink:type="arc" weight="1"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingIncomeLoss" xlink:to="loc_us-gaapOperatingExpenses" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="loc_us-gaapNonoperatingIncomeExpense"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeGainLossOnDerivativeNet" xlink:label="loc_us-gaapDerivativeGainLossOnDerivativeNet"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNonoperatingIncomeExpense" xlink:to="loc_us-gaapDerivativeGainLossOnDerivativeNet" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="loc_us-gaapForeignCurrencyTransactionGainLossBeforeTax"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNonoperatingIncomeExpense" xlink:to="loc_us-gaapForeignCurrencyTransactionGainLossBeforeTax" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="loc_us-gaapOtherNonoperatingIncomeExpense"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNonoperatingIncomeExpense" xlink:to="loc_us-gaapOtherNonoperatingIncomeExpense" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GainsLossesOnRestructuringOfDebt" xlink:label="loc_us-gaapGainsLossesOnRestructuringOfDebt"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNonoperatingIncomeExpense" xlink:to="loc_us-gaapGainsLossesOnRestructuringOfDebt" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExaminationPenaltiesExpense" xlink:label="loc_us-gaapIncomeTaxExaminationPenaltiesExpense"/> |
| | <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNonoperatingIncomeExpense" xlink:to="loc_us-gaapIncomeTaxExaminationPenaltiesExpense" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestExpenseOther" xlink:label="loc_us-gaapInterestExpenseOther"/> |
| | <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNonoperatingIncomeExpense" xlink:to="loc_us-gaapInterestExpenseOther" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="loc_us-gaapNonoperatingIncomeExpense" xlink:type="arc" weight="1"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="loc_us-gaapOperatingIncomeLoss" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaapIncomeTaxExpenseBenefit"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest" xlink:to="loc_us-gaapIncomeTaxExpenseBenefit" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProfitLoss" xlink:label="loc_us-gaapProfitLoss"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapProfitLoss" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTax" xlink:label="loc_us-gaapIncomeLossFromDiscontinuedOperationsNetOfTax"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapProfitLoss" xlink:to="loc_us-gaapIncomeLossFromDiscontinuedOperationsNetOfTax" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperations" xlink:label="loc_us-gaapIncomeLossFromContinuingOperations"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperations" xlink:to="loc_us-gaapProfitLoss" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLossAttributableToNoncontrollingInterest" xlink:label="loc_us-gaapNetIncomeLossAttributableToNoncontrollingInterest"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperations" xlink:to="loc_us-gaapNetIncomeLossAttributableToNoncontrollingInterest" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToNoncontrollingInterest"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperations" xlink:to="loc_us-gaapIncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToNoncontrollingInterest" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity" xlink:label="loc_us-gaapIncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity" xlink:to="loc_us-gaapIncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToNoncontrollingInterest" xlink:type="arc" weight="-1"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity" xlink:to="loc_us-gaapIncomeLossFromDiscontinuedOperationsNetOfTax" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetIncomeLoss" xlink:to="loc_us-gaapIncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity" xlink:type="arc" weight="1"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetIncomeLoss" xlink:to="loc_us-gaapIncomeLossFromContinuingOperations" xlink:type="arc" weight="1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" xlink:title="00000005 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:label="loc_us-gaapComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProfitLoss" xlink:label="loc_us-gaapProfitLoss"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:to="loc_us-gaapProfitLoss" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax" xlink:label="loc_us-gaapOtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:to="loc_us-gaapOtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="loc_us-gaapComprehensiveIncomeNetOfTax"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapComprehensiveIncomeNetOfTax" xlink:to="loc_us-gaapComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest" xlink:label="loc_us-gaapComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapComprehensiveIncomeNetOfTax" xlink:to="loc_us-gaapComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest" xlink:type="arc" weight="-1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/ConsolidatedStatementsOfEquityDeficit" xlink:title="00000006 - Statement - CONSOLIDATED STATEMENTS OF EQUITY (DEFICIT)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/ConsolidatedStatementsOfCashFlows" xlink:title="00000007 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Depreciation" xlink:label="loc_us-gaapDepreciation"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapDepreciation" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="loc_us-gaapAmortizationOfIntangibleAssets"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapAmortizationOfIntangibleAssets" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="loc_us-gaapShareBasedCompensation"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapShareBasedCompensation" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfFinancingCostsAndDiscounts" xlink:label="loc_us-gaapAmortizationOfFinancingCostsAndDiscounts"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapAmortizationOfFinancingCostsAndDiscounts" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:label="loc_us-gaapIncreaseDecreaseInAccruedIncomeTaxesPayable"/> |
| | <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapIncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="loc_us-gaapIncreaseDecreaseInAccruedLiabilities"/> |
| | <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapIncreaseDecreaseInAccruedLiabilities" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInDueToRelatedParties" xlink:label="loc_us-gaapIncreaseDecreaseInDueToRelatedParties"/> |
| | <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapIncreaseDecreaseInDueToRelatedParties" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInDerivativeAssetsAndLiabilities" xlink:label="loc_us-gaapIncreaseDecreaseInDerivativeAssetsAndLiabilities"/> |
| | <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapIncreaseDecreaseInDerivativeAssetsAndLiabilities" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:label="loc_us-gaapIncreaseDecreaseInDeferredIncomeTaxes"/> |
| | <link:calculationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapIncreaseDecreaseInDeferredIncomeTaxes" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsReceivable"/> |
| | <link:calculationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsReceivable" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInDueFromOtherRelatedPartiesCurrent" xlink:label="loc_us-gaapIncreaseDecreaseInDueFromOtherRelatedPartiesCurrent"/> |
| | <link:calculationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapIncreaseDecreaseInDueFromOtherRelatedPartiesCurrent" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInNotesReceivables" xlink:label="loc_us-gaapIncreaseDecreaseInNotesReceivables"/> |
| | <link:calculationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapIncreaseDecreaseInNotesReceivables" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_IncreaseDecreaseInProjectAssets" xlink:label="loc_spiIncreaseDecreaseInProjectAssets"/> |
| | <link:calculationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_spiIncreaseDecreaseInProjectAssets" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="loc_us-gaapIncreaseDecreaseInInventories"/> |
| | <link:calculationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapIncreaseDecreaseInInventories" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="loc_us-gaapIncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/> |
| | <link:calculationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapIncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest"/> |
| | <link:calculationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_IncreaseDecreaseInBitcoinMiningNetOfMiningPoolOperatingFees" xlink:label="loc_spiIncreaseDecreaseInBitcoinMiningNetOfMiningPoolOperatingFees"/> |
| | <link:calculationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_spiIncreaseDecreaseInBitcoinMiningNetOfMiningPoolOperatingFees" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="loc_us-gaapGainLossOnSaleOfPropertyPlantEquipment"/> |
| | <link:calculationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapGainLossOnSaleOfPropertyPlantEquipment" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GainOrLossOnSaleOfStockInSubsidiary" xlink:label="loc_us-gaapGainOrLossOnSaleOfStockInSubsidiary"/> |
| | <link:calculationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapGainOrLossOnSaleOfStockInSubsidiary" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GainsLossesOnRestructuringOfDebt" xlink:label="loc_us-gaapGainsLossesOnRestructuringOfDebt"/> |
| | <link:calculationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapGainsLossesOnRestructuringOfDebt" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfLeasedAsset" xlink:label="loc_us-gaapAmortizationOfLeasedAsset"/> |
| | <link:calculationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapAmortizationOfLeasedAsset" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExaminationPenaltiesExpense" xlink:label="loc_us-gaapIncomeTaxExaminationPenaltiesExpense"/> |
| | <link:calculationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapIncomeTaxExaminationPenaltiesExpense" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="loc_us-gaapProvisionForDoubtfulAccounts"/> |
| | <link:calculationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapProvisionForDoubtfulAccounts" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="loc_us-gaapIncreaseDecreaseInContractWithCustomerLiability"/> |
| | <link:calculationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapIncreaseDecreaseInContractWithCustomerLiability" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOtherAccountsPayable" xlink:label="loc_us-gaapIncreaseDecreaseInOtherAccountsPayable"/> |
| | <link:calculationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapIncreaseDecreaseInOtherAccountsPayable" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_IncreaseDecreaseInLeaseLiability" xlink:label="loc_spiIncreaseDecreaseInLeaseLiability"/> |
| | <link:calculationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_spiIncreaseDecreaseInLeaseLiability" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_ImpairmentReverseChargesOnPropertyPlantAndEquipment" xlink:label="loc_spiImpairmentReverseChargesOnPropertyPlantAndEquipment"/> |
| | <link:calculationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_spiImpairmentReverseChargesOnPropertyPlantAndEquipment" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_ProvisionForInventory" xlink:label="loc_spiProvisionForInventory"/> |
| | <link:calculationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_spiProvisionForInventory" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ImpairmentOfOngoingProject" xlink:label="loc_us-gaapImpairmentOfOngoingProject"/> |
| | <link:calculationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_us-gaapImpairmentOfOngoingProject" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_ReversalOfWarrantyReserve" xlink:label="loc_spiReversalOfWarrantyReserve"/> |
| | <link:calculationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_spiReversalOfWarrantyReserve" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_GainOnForgivenessOfPppLoan" xlink:label="loc_spiGainOnForgivenessOfPppLoan"/> |
| | <link:calculationArc order="31" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_spiGainOnForgivenessOfPppLoan" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_GainOnDerecognitionOfLongagedLiabilities" xlink:label="loc_spiGainOnDerecognitionOfLongagedLiabilities"/> |
| | <link:calculationArc order="32" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:to="loc_spiGainOnDerecognitionOfLongagedLiabilities" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesContinuingOperations"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_DecreaseOfCashFueToDispositionOfSpiChina" xlink:label="loc_spiDecreaseOfCashFueToDispositionOfSpiChina"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:to="loc_spiDecreaseOfCashFueToDispositionOfSpiChina" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="loc_us-gaapProceedsFromSaleOfPropertyPlantAndEquipment"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:to="loc_us-gaapProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromDivestitureOfBusinesses" xlink:label="loc_us-gaapProceedsFromDivestitureOfBusinesses"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:to="loc_us-gaapProceedsFromDivestitureOfBusinesses" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromSaleOfIntangibleAssets" xlink:label="loc_us-gaapProceedsFromSaleOfIntangibleAssets"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:to="loc_us-gaapProceedsFromSaleOfIntangibleAssets" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="loc_us-gaapPaymentsToAcquireBusinessesGross"/> |
| | <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:to="loc_us-gaapPaymentsToAcquireBusinessesGross" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireLand" xlink:label="loc_us-gaapPaymentsToAcquireLand"/> |
| | <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:to="loc_us-gaapPaymentsToAcquireLand" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireOtherPropertyPlantAndEquipment" xlink:label="loc_us-gaapPaymentsToAcquireOtherPropertyPlantAndEquipment"/> |
| | <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:to="loc_us-gaapPaymentsToAcquireOtherPropertyPlantAndEquipment" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_AcquisitionsOfSubsidiariesNetOfCashAcquired" xlink:label="loc_spiAcquisitionsOfSubsidiariesNetOfCashAcquired"/> |
| | <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:to="loc_spiAcquisitionsOfSubsidiariesNetOfCashAcquired" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperations" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesContinuingOperations"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="loc_us-gaapProceedsFromIssuanceOfCommonStock"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesContinuingOperations" xlink:to="loc_us-gaapProceedsFromIssuanceOfCommonStock" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromIssuanceOfDebt" xlink:label="loc_us-gaapProceedsFromIssuanceOfDebt"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesContinuingOperations" xlink:to="loc_us-gaapProceedsFromIssuanceOfDebt" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfDebt" xlink:label="loc_us-gaapRepaymentsOfDebt"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesContinuingOperations" xlink:to="loc_us-gaapRepaymentsOfDebt" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromPaymentsToMinorityShareholders" xlink:label="loc_us-gaapProceedsFromPaymentsToMinorityShareholders"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesContinuingOperations" xlink:to="loc_us-gaapProceedsFromPaymentsToMinorityShareholders" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromConvertibleDebt" xlink:label="loc_us-gaapProceedsFromConvertibleDebt"/> |
| | <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesContinuingOperations" xlink:to="loc_us-gaapProceedsFromConvertibleDebt" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfConvertibleDebt" xlink:label="loc_us-gaapRepaymentsOfConvertibleDebt"/> |
| | <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesContinuingOperations" xlink:to="loc_us-gaapRepaymentsOfConvertibleDebt" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="loc_us-gaapProceedsFromStockOptionsExercised"/> |
| | <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesContinuingOperations" xlink:to="loc_us-gaapProceedsFromStockOptionsExercised" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromContributionsFromAffiliates" xlink:label="loc_us-gaapProceedsFromContributionsFromAffiliates"/> |
| | <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesContinuingOperations" xlink:to="loc_us-gaapProceedsFromContributionsFromAffiliates" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesContinuingOperations" xlink:type="arc" weight="1"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:type="arc" weight="1"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesContinuingOperations" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents" xlink:label="loc_us-gaapEffectOfExchangeRateOnCashAndCashEquivalents"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="loc_us-gaapEffectOfExchangeRateOnCashAndCashEquivalents" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations" xlink:label="loc_us-gaapCashProvidedByUsedInOperatingActivitiesDiscontinuedOperations"/> |
| | <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="loc_us-gaapCashProvidedByUsedInOperatingActivitiesDiscontinuedOperations" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" xlink:label="loc_us-gaapCashProvidedByUsedInInvestingActivitiesDiscontinuedOperations"/> |
| | <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="loc_us-gaapCashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashProvidedByUsedInFinancingActivitiesDiscontinuedOperations" xlink:label="loc_us-gaapCashProvidedByUsedInFinancingActivitiesDiscontinuedOperations"/> |
| | <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="loc_us-gaapCashProvidedByUsedInFinancingActivitiesDiscontinuedOperations" xlink:type="arc" weight="1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/ReconciliationOfCash" xlink:title="00000008 - Statement - Reconciliation of Cash"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/DescriptionOfBusinessAndOrganization" xlink:title="00000009 - Disclosure - 1. Description of Business and Organization"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/LiquidityCondition" xlink:title="00000010 - Disclosure - 2. Liquidity Condition"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/SummaryOfSignificantAccountingPolicies" xlink:title="00000011 - Disclosure - 3. Summary of Significant Accounting Policies"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Disposition" xlink:title="00000012 - Disclosure - 4. Disposition"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/BusinessAcquisitions" xlink:title="00000013 - Disclosure - 5. Acquisitions"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/AccountsReceivableNet" xlink:title="00000014 - Disclosure - 6. Accounts Receivable, net"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/InventoriesNet" xlink:title="00000015 - Disclosure - 7. Inventories, net"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/ProjectAssets" xlink:title="00000016 - Disclosure - 8. Project Assets, net"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/PrepaidExpensesAndOtherCurrentAssets" xlink:title="00000017 - Disclosure - 9. Prepaid Expenses and Other Current Assets, net"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/IntangibleAssetsNet" xlink:title="00000018 - Disclosure - 10. Intangible Assets, net"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/PropertyPlantAndEquipmentNet" xlink:title="00000019 - Disclosure - 11. Property, Plant and Equipment, net"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/FairValueMeasurement" xlink:title="00000020 - Disclosure - 12. Fair Value Measurement"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/AccruedLiabilities" xlink:title="00000021 - Disclosure - 13. Accrued Liabilities"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Short-termBorrowingsAndLong-termBorrowings" xlink:title="00000022 - Disclosure - 14. Short-term Borrowings and Long-term Borrowings"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/ConvertibleBonds" xlink:title="00000023 - Disclosure - 15. Convertible Bonds"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/AmountDueToAffiliate" xlink:title="00000024 - Disclosure - 16. Amount Due to an Affiliate"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/OrdinaryShares" xlink:title="00000025 - Disclosure - 17. Ordinary Shares"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/NoncontrollingInterests" xlink:title="00000026 - Disclosure - 18. Noncontrolling Interests"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Share-basedCompensation" xlink:title="00000027 - Disclosure - 19. Share-based Compensation"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/IncomeTaxes" xlink:title="00000028 - Disclosure - 20. Income Taxes"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/NetLossPerShare" xlink:title="00000029 - Disclosure - 21. Net Loss Per Share"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Leases" xlink:title="00000030 - Disclosure - 22. Leases"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/CommitmentsAndContingencies" xlink:title="00000031 - Disclosure - 23. Commitments and Contingencies"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/ConcentrationRisk" xlink:title="00000032 - Disclosure - 24. Concentration Risk"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/RelatedPartyTransactions" xlink:title="00000033 - Disclosure - 25. Related Party Transactions"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/SubsequentEvents" xlink:title="00000034 - Disclosure - 26. Subsequent Events"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:title="00000035 - Disclosure - 3. Summary of Significant Accounting Policies (Policies)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/DescriptionOfBusinessAndOrganizationTables" xlink:title="00000036 - Disclosure - 1. Description of Business and Organization (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:title="00000037 - Disclosure - 3. Summary of Significant Accounting Policies (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/DispositionTables" xlink:title="00000038 - Disclosure - 4. Disposition (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/AcquisitionsTables" xlink:title="00000039 - Disclosure - 5. Acquisitions (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/AccountsReceivableNetTables" xlink:title="00000040 - Disclosure - 6. Accounts Receivable, net (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/InventoriesNetTables" xlink:title="00000041 - Disclosure - 7. Inventories, net (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/ProjectAssetsNetTables" xlink:title="00000042 - Disclosure - 8. Project Assets, net (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/PrepaidExpensesAndOtherCurrentAssetsNetTables" xlink:title="00000043 - Disclosure - 9. Prepaid Expenses and Other Current Assets, net (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/IntangibleAssetsNetTables" xlink:title="00000044 - Disclosure - 10. Intangible Assets, net (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/PropertyPlantAndEquipmentNetTables" xlink:title="00000045 - Disclosure - 11. Property, Plant and Equipment, net (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/FairValueMeasurementTables" xlink:title="00000046 - Disclosure - 12. Fair Value Measurement (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/AccruedLiabilitiesTables" xlink:title="00000047 - Disclosure - 13. Accrued Liabilities (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Short-termBorrowingsAndLong-termBorrowingsTables" xlink:title="00000048 - Disclosure - 14. Short-term Borrowings and Long-term Borrowings (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/ConvertibleBondsTables" xlink:title="00000049 - Disclosure - 15. Convertible Bonds (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/AmountDueToAffiliateTables" xlink:title="00000050 - Disclosure - 16. Amount Due to an Affiliate (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Share-basedCompensationTables" xlink:title="00000051 - Disclosure - 19. Share-based Compensation (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/IncomeTaxesTables" xlink:title="00000052 - Disclosure - 20. Income Taxes (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/NetLossPerShareTables" xlink:title="00000053 - Disclosure - 21. Net Loss Per Share (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/LeasesTables" xlink:title="00000054 - Disclosure - 22. Leases (Tables)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/DescriptionOfBusinessAndOrganizationDetailsNarrative" xlink:title="00000055 - Disclosure - 1. Description of Business and Organization (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/GoingConcernDetailsNarrative" xlink:title="00000056 - Disclosure - 2. Going Concern (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/SummaryOfSignificantAccountingPoliciesDetails-PpeUsefulLives" xlink:title="00000057 - Disclosure - 3. Summary of Significant Accounting Policies (Details - PPE useful lives)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/SummaryOfSignificantAccountingPoliciesDetails-DisaggregationOfRevenueByRevenueStream" xlink:title="00000058 - Disclosure - 3. Summary of Significant Accounting Policies (Details - Disaggregation of revenue by revenue stream)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/SummaryOfSignificantAccountingPoliciesDetails-ContractBalance" xlink:title="00000059 - Disclosure - 3. Summary of Significant Accounting Policies (Details - Contract balance)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/DisclosureSummaryOfSignificantAccountingPoliciesCapitalizedInterestDetails" xlink:title="00000060 - Disclosure - 3. Summary of Significant Accounting Policies (Details - Capitalized interest)"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestExpense" xlink:label="loc_us-gaapInterestExpense"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestCostsIncurred" xlink:label="loc_us-gaapInterestCostsIncurred"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapInterestExpense" xlink:to="loc_us-gaapInterestCostsIncurred" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestCostsCapitalized" xlink:label="loc_us-gaapInterestCostsCapitalized"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapInterestExpense" xlink:to="loc_us-gaapInterestCostsCapitalized" xlink:type="arc" weight="1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:title="00000061 - Disclosure - 3. Summary of Significant Accounting Policies (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/DispositionDetails-StatementOfOperation" xlink:title="00000062 - Disclosure - 4. Disposition (Details - Statement of operation)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/DispositionDetailsNarrative" xlink:title="00000063 - Disclosure - 4. Disposition (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/AcquisitionsDetails-AllocationOfPurchasePrice" xlink:title="00000064 - Disclosure - 5. Acquisitions (Details - Allocation of purchase price)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/AcquisitionsDetailsNarrative" xlink:title="00000065 - Disclosure - 5. Acquisitions (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/AccountsReceivableNetDetails-AccountsReceivable" xlink:title="00000066 - Disclosure - 6. Accounts Receivable, net (Details - Accounts receivable)"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNet" xlink:label="loc_us-gaapAccountsReceivableNet"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableGross" xlink:label="loc_us-gaapAccountsReceivableGross"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAccountsReceivableNet" xlink:to="loc_us-gaapAccountsReceivableGross" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="loc_us-gaapAllowanceForDoubtfulAccountsReceivable"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAccountsReceivableNet" xlink:to="loc_us-gaapAllowanceForDoubtfulAccountsReceivable" xlink:type="arc" weight="-1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/AccountsReceivableNetDetails-AllowanceForDoubtfulAccounts" xlink:title="00000067 - Disclosure - 6. Accounts Receivable, net (Details - Allowance for Doubtful Accounts)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/AccountsReceivableNetDetailsNarrative" xlink:title="00000068 - Disclosure - 6. Accounts Receivable, net (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/InventoriesNetDetails" xlink:title="00000069 - Disclosure - 7. Inventories, net (Details)"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="loc_us-gaapInventoryFinishedGoodsNetOfReserves"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapInventoryNet" xlink:to="loc_us-gaapInventoryFinishedGoodsNetOfReserves" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryWorkInProcessAndRawMaterialsNetOfReserves" xlink:label="loc_us-gaapInventoryWorkInProcessAndRawMaterialsNetOfReserves"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapInventoryNet" xlink:to="loc_us-gaapInventoryWorkInProcessAndRawMaterialsNetOfReserves" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryRawMaterials" xlink:label="loc_us-gaapInventoryRawMaterials"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapInventoryNet" xlink:to="loc_us-gaapInventoryRawMaterials" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryWorkInProcess" xlink:label="loc_us-gaapInventoryWorkInProcess"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapInventoryNet" xlink:to="loc_us-gaapInventoryWorkInProcess" xlink:type="arc" weight="1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/InventoriesNetDetailsNarrative" xlink:title="00000070 - Disclosure - 7. Inventories, net (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/ProjectAssetsNetDetails" xlink:title="00000071 - Disclosure - 8. Project Assets, net (Details)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/ProjectAssetsNetDetailsNarrative" xlink:title="00000072 - Disclosure - 8. Project Assets, net (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/PrepaidExpensesAndOtherCurrentAssetsNetDetails" xlink:title="00000073 - Disclosure - 9. Prepaid expenses and other current assets, net (Details)"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="loc_us-gaapPrepaidExpenseAndOtherAssetsCurrent"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValueAddedTaxReceivable" xlink:label="loc_us-gaapValueAddedTaxReceivable"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapPrepaidExpenseAndOtherAssetsCurrent" xlink:to="loc_us-gaapValueAddedTaxReceivable" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_DepositAndPrepaymentForAcquisitions" xlink:label="loc_spiDepositAndPrepaymentForAcquisitions"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapPrepaidExpenseAndOtherAssetsCurrent" xlink:to="loc_spiDepositAndPrepaymentForAcquisitions" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_OtherDepositAndPrepayments" xlink:label="loc_spiOtherDepositAndPrepayments"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapPrepaidExpenseAndOtherAssetsCurrent" xlink:to="loc_spiOtherDepositAndPrepayments" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="loc_us-gaapOtherReceivablesNetCurrent"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapPrepaidExpenseAndOtherAssetsCurrent" xlink:to="loc_us-gaapOtherReceivablesNetCurrent" xlink:type="arc" weight="1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/PrepaidExpensesAndOtherCurrentAssetsNetDetailsNarrative" xlink:title="00000074 - Disclosure - 9. Prepaid expenses and other current assets, net (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/IntangibleAssetsNetDetails-IntangibleAssets" xlink:title="00000075 - Disclosure - 10. Intangible Assets, net (Details - Intangible Assets)"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsNet"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_FiniteLivedIntangibleAssetsImpairmentCharge" xlink:label="loc_spiFiniteLivedIntangibleAssetsImpairmentCharge"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsNet" xlink:to="loc_spiFiniteLivedIntangibleAssetsImpairmentCharge" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsNet" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsGross"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsNet" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsGross" xlink:type="arc" weight="1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/IntangibleAssetsNetDetails-FutureAmortization" xlink:title="00000076 - Disclosure - 10. Intangible Assets, net (Details - Future Amortization)"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsNet"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsNet" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFive"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsNet" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsNet" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsNet" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/> |
| | <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsNet" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="arc" weight="1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/IntangibleAssetsNetDetailsNarrative" xlink:title="00000077 - Disclosure - 10. Intangible Assets, net (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/PropertyPlantAndEquipmentNetDetails" xlink:title="00000078 - Disclosure - 11. Property, Plant and Equipment, net (Details)"> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_PropertyPlantAndEquipmentNetBeforeConstructionInProgressAndImpairment" xlink:label="loc_spiPropertyPlantAndEquipmentNetBeforeConstructionInProgressAndImpairment"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="loc_us-gaapPropertyPlantAndEquipmentGross"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_spiPropertyPlantAndEquipmentNetBeforeConstructionInProgressAndImpairment" xlink:to="loc_us-gaapPropertyPlantAndEquipmentGross" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="loc_us-gaapAccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_spiPropertyPlantAndEquipmentNetBeforeConstructionInProgressAndImpairment" xlink:to="loc_us-gaapAccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="arc" weight="-1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapPropertyPlantAndEquipmentNet" xlink:to="loc_spiPropertyPlantAndEquipmentNetBeforeConstructionInProgressAndImpairment" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_AccumulatedImpairmentOfPropertyPlantAndEquipment" xlink:label="loc_spiAccumulatedImpairmentOfPropertyPlantAndEquipment"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapPropertyPlantAndEquipmentNet" xlink:to="loc_spiAccumulatedImpairmentOfPropertyPlantAndEquipment" xlink:type="arc" weight="-1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/PropertyPlantAndEquipmentNetDetailsNarrative" xlink:title="00000079 - Disclosure - 11. Property, Plant and Equipment, net (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/FairValueMeasurementDetails-IliadAndStreetervilleCapital" xlink:title="00000080 - Disclosure - 12. Fair value measurement (Details - ILIAD and Streeterville Capital)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/FairValueMeasurementDetails-Warrants" xlink:title="00000081 - Disclosure - 12. Fair Value Measurement (Details - Warrants)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/FairValueMeasurementDetailsNarrative" xlink:title="00000082 - Disclosure - 12. Fair Value Measurement (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/AccruedLiabilitiesDetails" xlink:title="00000083 - Disclosure - 13. Accrued Liabilities (Details)"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="loc_us-gaapAccruedLiabilitiesCurrent"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxesPayableCurrent" xlink:label="loc_us-gaapTaxesPayableCurrent"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAccruedLiabilitiesCurrent" xlink:to="loc_us-gaapTaxesPayableCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableOtherCurrent" xlink:label="loc_us-gaapAccountsPayableOtherCurrent"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAccruedLiabilitiesCurrent" xlink:to="loc_us-gaapAccountsPayableOtherCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="loc_us-gaapOtherAccruedLiabilitiesCurrent"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAccruedLiabilitiesCurrent" xlink:to="loc_us-gaapOtherAccruedLiabilitiesCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAccountsPayableAndAccruedLiabilities" xlink:label="loc_us-gaapOtherAccountsPayableAndAccruedLiabilities"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAccruedLiabilitiesCurrent" xlink:to="loc_us-gaapOtherAccountsPayableAndAccruedLiabilities" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExaminationPenaltiesAccrued" xlink:label="loc_us-gaapIncomeTaxExaminationPenaltiesAccrued"/> |
| | <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAccruedLiabilitiesCurrent" xlink:to="loc_us-gaapIncomeTaxExaminationPenaltiesAccrued" xlink:type="arc" weight="1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Short-termBorrowingsAndLong-termBorrowingsDetails-Debt" xlink:title="00000084 - Disclosure - 14. Short-term Borrowings and Long-term Borrowings (Details - Debt)"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtCurrent" xlink:label="loc_us-gaapDebtCurrent"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherShortTermBorrowings" xlink:label="loc_us-gaapOtherShortTermBorrowings"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDebtCurrent" xlink:to="loc_us-gaapOtherShortTermBorrowings" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="loc_us-gaapLongTermDebtCurrent"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDebtCurrent" xlink:to="loc_us-gaapLongTermDebtCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_DebtorFinanceBalance" xlink:label="loc_spiDebtorFinanceBalance"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDebtCurrent" xlink:to="loc_spiDebtorFinanceBalance" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebt" xlink:label="loc_us-gaapLongTermDebt"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermLoansFromBank" xlink:label="loc_us-gaapLongTermLoansFromBank"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLongTermDebt" xlink:to="loc_us-gaapLongTermLoansFromBank" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherLongTermDebtNoncurrent" xlink:label="loc_us-gaapOtherLongTermDebtNoncurrent"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLongTermDebt" xlink:to="loc_us-gaapOtherLongTermDebtNoncurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtLongtermAndShorttermCombinedAmount" xlink:label="loc_us-gaapDebtLongtermAndShorttermCombinedAmount"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDebtLongtermAndShorttermCombinedAmount" xlink:to="loc_us-gaapDebtCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="loc_us-gaapLongTermDebtNoncurrent"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDebtLongtermAndShorttermCombinedAmount" xlink:to="loc_us-gaapLongTermDebtNoncurrent" xlink:type="arc" weight="1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Short-termBorrowingsAndLong-termBorrowingsDetails-Maturities" xlink:title="00000085 - Disclosure - 14. Short-term Borrowings and Long-term Borrowings (Details - Maturities)"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebt" xlink:label="loc_us-gaapLongTermDebt"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:label="loc_us-gaapLongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLongTermDebt" xlink:to="loc_us-gaapLongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:label="loc_us-gaapLongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLongTermDebt" xlink:to="loc_us-gaapLongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:label="loc_us-gaapLongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLongTermDebt" xlink:to="loc_us-gaapLongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xlink:label="loc_us-gaapLongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLongTermDebt" xlink:to="loc_us-gaapLongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive" xlink:label="loc_us-gaapLongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive"/> |
| | <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLongTermDebt" xlink:to="loc_us-gaapLongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFive" xlink:label="loc_us-gaapLongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFive"/> |
| | <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLongTermDebt" xlink:to="loc_us-gaapLongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFive" xlink:type="arc" weight="1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Short-termBorrowingsAndLong-termBorrowingsDetailsNarrative" xlink:title="00000086 - Disclosure - 14. Short-term Borrowings and Long-term Borrowings (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/ConvertibleBondsDetails" xlink:title="00000087 - Disclosure - 15. Convertible Bonds (Details)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/ConvertibleBondsDetailsNarrative" xlink:title="00000088 - Disclosure - 15. Convertible Bonds (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/AmountDueToAffiliateDetails" xlink:title="00000089 - Disclosure - 16. Amount Due to an Affiliate (Details)"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DueToAffiliateCurrentAndNoncurrent" xlink:label="loc_us-gaapDueToAffiliateCurrentAndNoncurrent"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DueToAffiliateCurrent" xlink:label="loc_us-gaapDueToAffiliateCurrent"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDueToAffiliateCurrentAndNoncurrent" xlink:to="loc_us-gaapDueToAffiliateCurrent" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_AmountDueToAffiliateNoncurrent" xlink:label="loc_spiAmountDueToAffiliateNoncurrent"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDueToAffiliateCurrentAndNoncurrent" xlink:to="loc_spiAmountDueToAffiliateNoncurrent" xlink:type="arc" weight="1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/AmountDueToAffiliateDetailsNarrative" xlink:title="00000090 - Disclosure - 16. Amount Due to an Affiliate (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/OrdinarySharesDetailsNarrative" xlink:title="00000091 - Disclosure - 17. Ordinary Shares (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/NoncontrollingInterestsDetailsNarrative" xlink:title="00000092 - Disclosure - 18. Noncontrolling Interests (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Share-basedCompensationDetails-Stock-basedCompensationExpenseByAwardType" xlink:title="00000093 - Disclosure - 19. Share-based Compensation (Details - Stock-Based Compensation Expense by Award type)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Share-basedCompensationDetails-CompensationExpenseByLineItem" xlink:title="00000094 - Disclosure - 19. Share-based Compensation (Details - Compensation expense by line item)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Share-basedCompensationDetails-Assumptions" xlink:title="00000095 - Disclosure - 19. Share-based Compensation (Details - Assumptions)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Share-basedCompensationDetails-OptionActivity" xlink:title="00000096 - Disclosure - 19. Share-based Compensation (Details - Option Activity)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Share-basedCompensationDetails-OptionsByExercisePrice" xlink:title="00000097 - Disclosure - 19. Share-based Compensation (Details - Options by Exercise Price)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Share-basedCompensationDetails-Rsus" xlink:title="00000098 - Disclosure - 19. Share-based Compensation (Details - RSU's)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Share-basedCompensationDetails-Non-vestedOptions" xlink:title="00000099 - Disclosure - 19. Share-based Compensation (Details - Non-vested options)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/Share-basedCompensationDetailsNarrative" xlink:title="00000100 - Disclosure - 19. Share-based Compensation (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/IncomeTaxesDetails-LossBeforeProvision" xlink:title="00000101 - Disclosure - 20. Income Taxes (Details - Loss before Provision)"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:type="arc" weight="1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/IncomeTaxesDetails-ProvisionForIncomeTaxes" xlink:title="00000102 - Disclosure - 20. Income Taxes (Details - Provision for income taxes)"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapCurrentIncomeTaxExpenseBenefit"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="loc_us-gaapCurrentStateAndLocalTaxExpenseBenefit"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCurrentIncomeTaxExpenseBenefit" xlink:to="loc_us-gaapCurrentStateAndLocalTaxExpenseBenefit" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="loc_us-gaapCurrentForeignTaxExpenseBenefit"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCurrentIncomeTaxExpenseBenefit" xlink:to="loc_us-gaapCurrentForeignTaxExpenseBenefit" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredIncomeTaxExpenseBenefit"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredFederalIncomeTaxExpenseBenefit"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefit" xlink:to="loc_us-gaapDeferredFederalIncomeTaxExpenseBenefit" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredStateAndLocalIncomeTaxExpenseBenefit"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefit" xlink:to="loc_us-gaapDeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredForeignIncomeTaxExpenseBenefit"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefit" xlink:to="loc_us-gaapDeferredForeignIncomeTaxExpenseBenefit" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaapIncomeTaxExpenseBenefit"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeTaxExpenseBenefit" xlink:to="loc_us-gaapCurrentIncomeTaxExpenseBenefit" xlink:type="arc" weight="1"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeTaxExpenseBenefit" xlink:to="loc_us-gaapDeferredIncomeTaxExpenseBenefit" xlink:type="arc" weight="1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/IncomeTaxesDetails-TaxReconciliation" xlink:title="00000103 - Disclosure - 20. Income Taxes (Details - Tax reconciliation)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/IncomeTaxesDetails-DeferredIncomeTaxes" xlink:title="00000104 - Disclosure - 20. Income Taxes (Details - Deferred income taxes)"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="loc_us-gaapDeferredIncomeTaxLiabilities"/> |
| | <link:loc xlink:type="locator" xlink:href="spi-20201231.xsd#spi_DeferredTaxLiabilitiesFairValueAdjustmentOfSubsidiaries" xlink:label="loc_spiDeferredTaxLiabilitiesFairValueAdjustmentOfSubsidiaries"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredIncomeTaxLiabilities" xlink:to="loc_spiDeferredTaxLiabilitiesFairValueAdjustmentOfSubsidiaries" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="loc_us-gaapDeferredTaxLiabilitiesOther"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredIncomeTaxLiabilities" xlink:to="loc_us-gaapDeferredTaxLiabilitiesOther" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="loc_us-gaapDeferredTaxLiabilities"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredTaxLiabilities" xlink:to="loc_us-gaapDeferredIncomeTaxLiabilities" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="loc_us-gaapDeferredTaxAssetsNet"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredTaxLiabilities" xlink:to="loc_us-gaapDeferredTaxAssetsNet" xlink:type="arc" weight="-1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/IncomeTaxesDetailsNarrative" xlink:title="00000105 - Disclosure - 20. Income Taxes (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/NetLossPerShareDetails-BasicAndDiluted" xlink:title="00000106 - Disclosure - 21. Net Loss Per Share (Details - Basic and Diluted)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/NetLossPerShareDetails-AntidilutiveShares" xlink:title="00000107 - Disclosure - 21. Net Loss Per Share (Details - Antidilutive shares)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/LeasesDetails-MaturityOfLeaseLiabilities" xlink:title="00000108 - Disclosure - 22. Leases (Details - Maturity of Lease Liabilities)"> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/> |
| | <link:calculationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/> |
| | <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree"/> |
| | <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour"/> |
| | <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFive"/> |
| | <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc" weight="1"/> |
| | <link:loc xlink:type="locator" xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/> |
| | <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc" weight="1"/> |
| | </link:calculationLink> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/LeasesDetails-SupplementalInformationRelatedToOperatingLeases" xlink:title="00000109 - Disclosure - 22. Leases (Details - Supplemental information related to operating leases)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/LeasesDetailsNarrative" xlink:title="00000110 - Disclosure - 22. Leases (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/CommitmentsAndContingenciesDetailsNarrative" xlink:title="00000111 - Disclosure - 23. Commitments and Contingencies (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/ConcentrationRiskDetails" xlink:title="00000112 - Disclosure - 24. Concentration Risk (Details Narrative)"/> |
| <link:calculationLink xlink:type="extended" xlink:role="http://spisolar.com/role/RelatedPartyTransactionsDetailsNarrative" xlink:title="00000113 - Disclosure - 25. Related Party Transactions (Details Narrative)"/> |
| </link:linkbase> |