cmake_minimum_required(VERSION 3.6)



set (CMAKE_CXX_FLAGS
        " \
           ${CMAKE_CXX_FLAGS} \
          -DNO_TRACE -DNO_TRY -DNO_OLE -DSTAR_ANDROID -DBLOB_IS_PURE  -DDARWIN -DTRISTATE_TUBES \
          -fno-rtti -pthread -fexceptions -Wno-deprecated -std=gnu++11 \
        "
    )


# -std=gnu++11 -Wall -DNO_TRACE -Wno-deprecated -fsanitize=address

add_library(PRINTFORMAT SHARED

    ../../../../../PrintFormat/Src/PFinterface.cpp
    ../../../../../PrintFormat/Src/PrintFormat.cpp
    ../../../../../PrintFormat/Src/PseudoDomDoc.cpp
    ../../../../../PrintFormat/Src/StdAfx.cpp
    ../../../../../PrintFormat/Src/TicketPrinting.cpp
    ../../../../../PrintFormat/Src/SerialSupport.cpp

    ../../../../../Interface/Src/PRINTFORMAT_Second.cpp
)
# Include libraries needed for PRINTFORMAT lib
target_link_libraries(PRINTFORMAT log android   )



add_library(LOCATIONS SHARED

    ../../../../../Interface/Src/LocationLookup.cpp
    ../../../../../Interface/Src/LOCATION_Second.cpp
)
# Include libraries needed for LOCATION lib
target_link_libraries(LOCATIONS log android   )


add_library(TT SHARED
    ../../../../../tt/Src/int_lists.cpp
    ../../../../../tt/Src/save_et_restore.cpp
    ../../../../../tt/Src/sorted_list.cpp
    ../../../../../tt/Src/sort_stack.cpp
    ../../../../../tt/Src/TT_Constants.cpp
    ../../../../../tt/Src/string_lists.cpp

    ../../../../../tt/Src/csvtable.cpp
    ../../../../../tt/Src/darwin.cpp
    ../../../../../tt/Src/DarwinInterface.cpp
    ../../../../../tt/Src/DeltaBuild.cpp
    ../../../../../tt/Src/DiagUtils.cpp
    ../../../../../tt/Src/general.cpp
    ../../../../../tt/Src/LoadDelta.cpp
    ../../../../../tt/Src/search_support.cpp
    ../../../../../tt/Src/set_handler.cpp
#    ../../../../../tt/Src/NonSharedLoad.cpp
    ../../../../../tt/Src/SharedInterface.cpp
    ../../../../../tt/Src/SharedMemoryComm.cpp
    ../../../../../tt/Src/trackusage.cpp
    ../../../../../tt/Src/TT_gui_support.cpp
    ../../../../../tt/Src/TTexpress_interval.cpp
    ../../../../../tt/Src/TTfixed_link.cpp
    ../../../../../tt/Src/ttinit.cpp
    ../../../../../tt/Src/TTlocations.cpp
    ../../../../../tt/Src/TTsaveload.cpp
    ../../../../../tt/Src/ttsearch.cpp
    ../../../../../tt/Src/TTsearchfortrains.cpp
    ../../../../../tt/Src/TTsupport.cpp
    ../../../../../tt/Src/TTtimetable.cpp

#
    ../../../../../Interface/Src/TT_Second.cpp

)
# Include libraries needed for TT lib
target_link_libraries(TT log android   )

#############################################################


add_library(FARES SHARED

    ../../../../../FibGuts/Src/FStarCodeSet.cpp
    ../../../../../FibGuts/Src/FStarFareSet.cpp
    ../../../../../FibGuts/Src/FStarIB.cpp
    ../../../../../FibGuts/Src/FStarRCSFlowSet.cpp
    ../../../../../FibGuts/Src/FStarSchema.cpp
    ../../../../../FibGuts/Src/FStarSet.cpp
    ../../../../../FibGuts/Src/FStarXMLCommand.cpp
    ../../../../../FibGuts/Src/IBProcessContext.cpp
    ../../../../../FibVb/Src/JQICommand.cpp

    ../../../../../LibFCalcFib/Src/AdvancePurchase.cpp
    ../../../../../LibFCalcFib/Src/Classdesc.cpp
    ../../../../../LibFCalcFib/Src/ControlData.cpp
    ../../../../../LibFCalcFib/Src/Discounts.cpp
    ../../../../../LibFCalcFib/Src/FaresCalcFib.cpp
    ../../../../../LibFCalcFib/Src/GetFlowAndNDFares.cpp
    ../../../../../LibFCalcFib/Src/Locations.cpp
    ../../../../../LibFCalcFib/Src/Paackages.cpp
    ../../../../../LibFCalcFib/Src/PeriodFactor.cpp
    ../../../../../LibFCalcFib/Src/ProdRefData.cpp
    ../../../../../LibFCalcFib/Src/Railcards.cpp
    ../../../../../LibFCalcFib/Src/RCSFlows.cpp
    ../../../../../LibFCalcFib/Src/RCSTicketChannels.cpp
    ../../../../../LibFCalcFib/Src/RCSTicketFulfil.cpp
    ../../../../../LibFCalcFib/Src/RCSTickets.cpp
    ../../../../../LibFCalcFib/Src/RCSTicketSchemes.cpp
    ../../../../../LibFCalcFib/Src/RCSTradData.cpp
    ../../../../../LibFCalcFib/Src/Restrictions.cpp
    ../../../../../LibFCalcFib/Src/Route.cpp
    ../../../../../LibFCalcFib/Src/SeasonTickets.cpp
    ../../../../../LibFCalcFib/Src/Setup.cpp
    ../../../../../LibFCalcFib/Src/Supplements.cpp
    ../../../../../LibFCalcFib/Src/TicketFormats.cpp
    ../../../../../LibFCalcFib/Src/Tickets.cpp
    ../../../../../LibFCalcFib/Src/TOCs.cpp

    ../../../../../LibFaresCalc/Src/BuildFarePrice.cpp
    ../../../../../LibFaresCalc/Src/BuildFaresEntMgrCriteria.cpp
    ../../../../../LibFaresCalc/Src/BuildSeasonFarePrice.cpp
    ../../../../../LibFaresCalc/Src/CalculateAAAFares.cpp
    ../../../../../LibFaresCalc/Src/CalculateAdditionalFirstSeasonFares.cpp
    ../../../../../LibFaresCalc/Src/CalculateAdditionalNDFirstSeasonFares.cpp
    ../../../../../LibFaresCalc/Src/CalculateAdditionalNDSeasonFares.cpp
    ../../../../../LibFaresCalc/Src/CalculateAdditionalSeasonFares.cpp
    ../../../../../LibFaresCalc/Src/CalculateFarePrice.cpp
    ../../../../../LibFaresCalc/Src/CalculateFlowFarePrices.cpp
    ../../../../../LibFaresCalc/Src/CalculateNDSeasonFares.cpp
    ../../../../../LibFaresCalc/Src/CalculateSeasonFarePrice.cpp
    ../../../../../LibFaresCalc/Src/CalculateSeasonFarePrices.cpp
    ../../../../../LibFaresCalc/Src/CalculateValidityDates.cpp
 	../../../../../LibFaresCalc/Src/CheckAdvancepurchase.cpp
 	../../../../../LibFaresCalc/Src/CheckFarePair.cpp
 	../../../../../LibFaresCalc/Src/CheckFarerestriction.cpp
 	../../../../../LibFaresCalc/Src/CheckFareValidity.cpp
 	../../../../../LibFaresCalc/Src/CheckFulfilmentMethod.cpp
 	../../../../../LibFaresCalc/Src/CheckLastValidDay.cpp
 	../../../../../LibFaresCalc/Src/CheckNSDiscount.cpp
 	../../../../../LibFaresCalc/Src/CheckPackageOK.cpp
 	../../../../../LibFaresCalc/Src/CheckPOV.cpp
 	../../../../../LibFaresCalc/Src/CheckRailcardCode.cpp
 	../../../../../LibFaresCalc/Src/CheckRailcardGeography.cpp
 	../../../../../LibFaresCalc/Src/CheckRailcardRestrictions.cpp
 	../../../../../LibFaresCalc/Src/CheckRestriction.cpp
 	../../../../../LibFaresCalc/Src/CheckSeasonTicketRestrictions.cpp
 	../../../../../LibFaresCalc/Src/CheckSeasonRailcardRestriction.cpp
 	../../../../../LibFaresCalc/Src/CheckSpecialFacilities.cpp
 	../../../../../LibFaresCalc/Src/CheckTicketOK.cpp
 	../../../../../LibFaresCalc/Src/CheckTicketRestriction.cpp
 	../../../../../LibFaresCalc/Src/ClsAdvancePurchase.cpp
 	../../../../../LibFaresCalc/Src/ClsAdvancepurchaseDetails.cpp
 	../../../../../LibFaresCalc/Src/ClsBandedDates.cpp
 	../../../../../LibFaresCalc/Src/ClsBaseFare.cpp
 	../../../../../LibFaresCalc/Src/ClsDateBand.cpp
 	../../../../../LibFaresCalc/Src/ClsDiscountMatchCriteria.cpp
 	../../../../../LibFaresCalc/Src/ClsExpandedFaresCriteria.cpp
 	../../../../../LibFaresCalc/Src/ClsFare.cpp
 	../../../../../LibFaresCalc/Src/ClsFareOverride.cpp
 	../../../../../LibFaresCalc/Src/ClsFarePair.cpp
 	../../../../../LibFaresCalc/Src/ClsFarePrice.cpp
 	../../../../../LibFaresCalc/Src/ClsFaresCalcContext.cpp
 	../../../../../LibFaresCalc/Src/ClsFaresCriteria.cpp
 	../../../../../LibFaresCalc/Src/ClsFaresResult.cpp
 	../../../../../LibFaresCalc/Src/ClsFareValidityResult.cpp
 	../../../../../LibFaresCalc/Src/ClsFlowFareData.cpp
 	../../../../../LibFaresCalc/Src/ClsIJQFARE.cpp
 	../../../../../LibFaresCalc/Src/ClsJFLRestrictionResult.cpp
 	../../../../../LibFaresCalc/Src/ClsJourneyFareLink.cpp
 	../../../../../LibFaresCalc/Src/ClsLocation.cpp
 	../../../../../LibFaresCalc/Src/ClsLocationLink.cpp
 	../../../../../LibFaresCalc/Src/ClsNonDerivableFareData.cpp
 	../../../../../LibFaresCalc/Src/ClsNSDiscount.cpp
 	../../../../../LibFaresCalc/Src/ClsRailcard.cpp
 	../../../../../LibFaresCalc/Src/ClsRailcardMinFare.cpp
 	../../../../../LibFaresCalc/Src/ClsRailcardRestriction.cpp
 	../../../../../LibFaresCalc/Src/ClsRailcardRestrictionDetails.cpp
 	../../../../../LibFaresCalc/Src/ClsRCSTicketDetails.cpp
 	../../../../../LibFaresCalc/Src/ClsRestriction.cpp
 	../../../../../LibFaresCalc/Src/ClsRestrictionResult.cpp
 	../../../../../LibFaresCalc/Src/ClsRestrictionsContext.cpp
 	../../../../../LibFaresCalc/Src/ClsRetailControl.cpp
 	../../../../../LibFaresCalc/Src/ClsSeasonTicketDetails.cpp
 	../../../../../LibFaresCalc/Src/ClsStatusDiscount.cpp
 	../../../../../LibFaresCalc/Src/ClsTicketCalendar.cpp
 	../../../../../LibFaresCalc/Src/ClsTicketDetails.cpp
 	../../../../../LibFaresCalc/Src/ClsTicketRestriction.cpp
 	../../../../../LibFaresCalc/Src/ClsTicketValidity.cpp
 	../../../../../LibFaresCalc/Src/ClsTimeRestriction.cpp
 	../../../../../LibFaresCalc/Src/ClsTOCSpecificDetails.cpp
 	../../../../../LibFaresCalc/Src/ClsTotalFareValues.cpp
 	../../../../../LibFaresCalc/Src/ClsTraceContext.cpp
 	../../../../../LibFaresCalc/Src/ConsolidateComplexFares.cpp
 	../../../../../LibFaresCalc/Src/ConsolidateSimpleFares.cpp
 	../../../../../LibFaresCalc/Src/CreateBaseFare.cpp
 	../../../../../LibFaresCalc/Src/CreateEnquiryResults.cpp
 	../../../../../LibFaresCalc/Src/CreateSeasonEnquiryResults.cpp
 	../../../../../LibFaresCalc/Src/DeriveFare.cpp
 	../../../../../LibFaresCalc/Src/DoFareValidityCheck.cpp
 	../../../../../LibFaresCalc/Src/DoRestrictionChecking.cpp
 	../../../../../LibFaresCalc/Src/ExpandFaresCriteria.cpp
 	../../../../../LibFaresCalc/Src/FaresSearch.cpp
 	../../../../../LibFaresCalc/Src/FindNSDiscountMatch.cpp
 	../../../../../LibFaresCalc/Src/FindNSFareExactMatch.cpp
 	../../../../../LibFaresCalc/Src/FindNSFareMatch.cpp
 	../../../../../LibFaresCalc/Src/FindSingleLevelFares.cpp
 	../../../../../LibFaresCalc/Src/GetBaseNDandFlowFares.cpp
 	../../../../../LibFaresCalc/Src/GetFareConditions.cpp
 	../../../../../LibFaresCalc/Src/GetFares.cpp
 	../../../../../LibFaresCalc/Src/GetHighestDerivedFlow.cpp
 	../../../../../LibFaresCalc/Src/GetHighestNDFlow.cpp
 	../../../../../LibFaresCalc/Src/GetNSDiscountDetails.cpp
 	../../../../../LibFaresCalc/Src/GetNSDiscountFare.cpp
 	../../../../../LibFaresCalc/Src/GetPackageDetails.cpp
 	../../../../../LibFaresCalc/Src/GetRestrictionCFMarker.cpp
 	../../../../../LibFaresCalc/Src/GetRestrictionText.cpp
 	../../../../../LibFaresCalc/Src/GetSeasonTicketFares.cpp
 	../../../../../LibFaresCalc/Src/GetSeasonTicketFaresSearch.cpp
 	../../../../../LibFaresCalc/Src/GetTicketingDetails.cpp
 	../../../../../LibFaresCalc/Src/GetTicketvalidityDates.cpp
 	../../../../../LibFaresCalc/Src/GetTicketValidityText.cpp
 	../../../../../LibFaresCalc/Src/GetTOCSpecificMainTocs.cpp
 	../../../../../LibFaresCalc/Src/HandleFlowandNDFares.cpp
 	../../../../../LibFaresCalc/Src/HandleNSDiscount_etc.cpp
 	../../../../../LibFaresCalc/Src/HGetAdvancePurchaseDetails.cpp
 	../../../../../LibFaresCalc/Src/HGetNSDiscounts.cpp
 	../../../../../LibFaresCalc/Src/HGetRailcardDetails.cpp
 	../../../../../LibFaresCalc/Src/HGetRailcardRestrictionDetails.cpp
 	../../../../../LibFaresCalc/Src/HGetRestriction.cpp
 	../../../../../LibFaresCalc/Src/HGetSeasonTicketDetails.cpp
 	../../../../../LibFaresCalc/Src/HGetStatusDiscount.cpp
 	../../../../../LibFaresCalc/Src/HGetTicketRestriction.cpp
 	../../../../../LibFaresCalc/Src/HGetTicketValidityDetails.cpp
 	../../../../../LibFaresCalc/Src/InitAndTrace.cpp
 	../../../../../LibFaresCalc/Src/IsFareAloneSameOrCheaper.cpp
 	../../../../../LibFaresCalc/Src/IsFirstClassFlow.cpp
 	../../../../../LibFaresCalc/Src/ProcessAdditionalFirstClassSeasonFares.cpp
 	../../../../../LibFaresCalc/Src/ProcessAdditionalPeriodFares.cpp
 	../../../../../LibFaresCalc/Src/ProcessNDSeasonFare.cpp
 	../../../../../LibFaresCalc/Src/ProcessNSDiscount.cpp
 	../../../../../LibFaresCalc/Src/RoundFare.cpp
 	../../../../../LibFaresCalc/Src/SehException.cpp
 	../../../../../LibFaresCalc/Src/StatusDiscount.cpp
 	../../../../../LibFaresCalc/Src/UpdateEnquiryResults.cpp
 	../../../../../LibFaresCalc/Src/WhichFareLoc.cpp
 	../../../../../LibFaresCalc/Src/WhichFareRequired.cpp

    ../../../../../Interface/Src/MobInterface.cpp
    ../../../../../Interface/Src/FARES_Second.cpp

)
# Include libraries needed for FARES lib
target_link_libraries(FARES log android   )