// Copyright (c) 2016, Intel Corporation
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation and/or
// other materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its contributors
// may be used to endorse or promote products derived from this software without
// specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

cc_defaults {
    name: "pfw_defaults",
    host_supported: true,

    cflags: [
        "-frtti",
        "-fexceptions",
        "-Wall",
        "-Werror",
        "-Wextra",
    ],
    rtti: true,
}

cc_library_static {
    name: "libpfw_utility",
    defaults: ["pfw_defaults"],
    host_supported: true,

    export_include_dirs: ["upstream/utility"],

    srcs: [
        "upstream/utility/DynamicLibrary.cpp",
        "upstream/utility/posix/DynamicLibrary.cpp",
        "upstream/utility/Tokenizer.cpp",
        "upstream/utility/Utility.cpp",
    ],
}

cc_library_shared {
    name: "libremote-processor",
    defaults: ["pfw_defaults"],

    cflags: ["-Wno-implicit-fallthrough"],
    local_include_dirs: ["upstream/asio/stub"],
    export_include_dirs: [
        "upstream/remote-processor",
        "support/android/remote-processor",
    ],

    srcs: [
        "upstream/remote-processor/RequestMessage.cpp",
        "upstream/remote-processor/Message.cpp",
        "upstream/remote-processor/AnswerMessage.cpp",
        "upstream/remote-processor/RemoteProcessorServer.cpp",
        "upstream/remote-processor/BackgroundRemoteProcessorServer.cpp",
    ],
    static_libs: ["libpfw_utility"],
}

cc_library_shared {
    name: "libparameter",
    defaults: ["pfw_defaults"],

    cppflags: [
        "-Wno-instantiation-after-specialization",
        "-Wno-implicit-fallthrough",
    ],
    export_include_dirs: [
        "upstream/parameter",
        "upstream/parameter/log/include",
        "upstream/parameter/include",
        "upstream/xmlserializer",
        "upstream/remote-processor",
        "support/android/parameter",
    ],
    shared_libs: [
        "libremote-processor",
    ],
    static_libs: [
        "libpfw_utility",
        "libxml2",
    ],

    srcs: [
        "upstream/parameter/ParameterMgrPlatformConnector.cpp",
        "upstream/parameter/LoggingElementBuilderTemplate.cpp",
        "upstream/parameter/StringParameterType.cpp",
        "upstream/parameter/SyncerSet.cpp",
        "upstream/parameter/BitParameter.cpp",
        "upstream/parameter/BaseParameter.cpp",
        "upstream/parameter/ParameterBlockType.cpp",
        "upstream/parameter/FloatingPointParameterType.cpp",
        "upstream/parameter/SelectionCriteriaDefinition.cpp",
        "upstream/parameter/EnumValuePair.cpp",
        "upstream/parameter/SelectionCriteria.cpp",
        "upstream/parameter/SelectionCriterionRule.cpp",
        "upstream/parameter/AreaConfiguration.cpp",
        "upstream/parameter/BitParameterBlockType.cpp",
        "upstream/parameter/ConfigurationAccessContext.cpp",
        "upstream/parameter/BitwiseAreaConfiguration.cpp",
        "upstream/parameter/ArrayParameter.cpp",
        "upstream/parameter/ParameterBlackboard.cpp",
        "upstream/parameter/InstanceConfigurableElement.cpp",
        "upstream/parameter/LogarithmicParameterAdaptation.cpp",
        "upstream/parameter/ConfigurableDomain.cpp",
        "upstream/parameter/FormattedSubsystemObject.cpp",
        "upstream/parameter/MappingData.cpp",
        "upstream/parameter/SubsystemElementBuilder.cpp",
        "upstream/parameter/BooleanParameterType.cpp",
        "upstream/parameter/FixedPointParameterType.cpp",
        "upstream/parameter/ComponentType.cpp",
        "upstream/parameter/EnumParameterType.cpp",
        "upstream/parameter/RuleParser.cpp",
        "upstream/parameter/VirtualSubsystem.cpp",
        "upstream/parameter/Element.cpp",
        "upstream/parameter/ParameterFrameworkConfiguration.cpp",
        "upstream/parameter/SelectionCriterionLibrary.cpp",
        "upstream/parameter/StringParameter.cpp",
        "upstream/parameter/CompoundRule.cpp",
        "upstream/parameter/ConfigurableDomains.cpp",
        "upstream/parameter/VirtualSyncer.cpp",
        "upstream/parameter/MappingContext.cpp",
        "upstream/parameter/LinearParameterAdaptation.cpp",
        "upstream/parameter/ComponentLibrary.cpp",
        "upstream/parameter/BitParameterBlock.cpp",
        "upstream/parameter/ParameterMgrFullConnector.cpp",
        "upstream/parameter/ConfigurableElement.cpp",
        "upstream/parameter/ConfigurableElementAggregator.cpp",
        "upstream/parameter/SubsystemObject.cpp",
        "upstream/parameter/TypeElement.cpp",
        "upstream/parameter/PathNavigator.cpp",
        "upstream/parameter/ElementLocator.cpp",
        "upstream/parameter/SimulatedBackSynchronizer.cpp",
        "upstream/parameter/Parameter.cpp",
        "upstream/parameter/ComponentInstance.cpp",
        "upstream/parameter/InstanceDefinition.cpp",
        "upstream/parameter/SubsystemObjectCreator.cpp",
        "upstream/parameter/ParameterType.cpp",
        "upstream/parameter/DomainConfiguration.cpp",
        "upstream/parameter/PluginLocation.cpp",
        "upstream/parameter/HardwareBackSynchronizer.cpp",
        "upstream/parameter/SystemClass.cpp",
        "upstream/parameter/ElementLibrary.cpp",
        "upstream/parameter/ParameterAccessContext.cpp",
        "upstream/parameter/XmlParameterSerializingContext.cpp",
        "upstream/parameter/ElementHandle.cpp",
        "upstream/parameter/ParameterMgr.cpp",
        "upstream/parameter/SelectionCriterionType.cpp",
        "upstream/parameter/Subsystem.cpp",
        "upstream/parameter/IntegerParameterType.cpp",
        "upstream/parameter/BitParameterType.cpp",
        "upstream/parameter/SelectionCriterion.cpp",
        "upstream/parameter/XmlElementSerializingContext.cpp",
        "upstream/parameter/ElementLibrarySet.cpp",
        "upstream/parameter/FrameworkConfigurationLocation.cpp",
        "upstream/parameter/ParameterAdaptation.cpp",
        "upstream/parameter/XmlFileIncluderElement.cpp",
        "upstream/xmlserializer/XmlElement.cpp",
        "upstream/xmlserializer/XmlSerializingContext.cpp",
        "upstream/xmlserializer/XmlMemoryDocSource.cpp",
        "upstream/xmlserializer/XmlDocSource.cpp",
        "upstream/xmlserializer/XmlMemoryDocSink.cpp",
        "upstream/xmlserializer/XmlStreamDocSink.cpp",
        "upstream/parameter/CommandHandlerWrapper.cpp",
    ],
    target: {
        android: {
            shared_libs: ["libandroidicu"],
        },
        host: {
            shared_libs: [
                "libicui18n",
                "libicuuc",
            ],
        },
    },
}

cc_binary {
    name: "test-platform",
    defaults: ["pfw_defaults"],

    cflags: ["-Wno-implicit-fallthrough"],
    local_include_dirs: [
        "upstream/test/test-platform",
        "upstream/asio/stub",
    ],

    srcs: [
        "upstream/test/test-platform/main.cpp",
        "upstream/test/test-platform/TestPlatform.cpp",
    ],
    static_libs: ["libpfw_utility"],
    shared_libs: [
        "libparameter",
        "libremote-processor",
    ],
}

cc_binary_host {
    name: "domainGeneratorConnector",
    defaults: ["pfw_defaults"],

    owner: "intel",
    static_libs: ["libpfw_utility"],
    shared_libs: ["libparameter"],
    srcs: ["upstream/tools/xmlGenerator/domainGeneratorConnector.cpp"],
}

// Resources are not compiled so the prebuild mechanism is used to export them.
// Schemas are only used by host, in order to validate xml files
//////////////////////////////////////////////////

prebuilt_etc_host {
    name: "ParameterFrameworkConfiguration.xsd",
    owner: "intel",
    src: "upstream/schemas/ParameterFrameworkConfiguration.xsd",
    sub_dir: "parameter-framework/Schemas",
}

prebuilt_etc_host {
    name: "ConfigurableDomain.xsd",
    owner: "intel",
    src: "upstream/schemas/ConfigurableDomain.xsd",
    sub_dir: "parameter-framework/Schemas",
    required: ["ParameterSettings.xsd"],
}

prebuilt_etc_host {
    name: "ConfigurableDomains.xsd",
    owner: "intel",
    src: "upstream/schemas/ConfigurableDomains.xsd",
    sub_dir: "parameter-framework/Schemas",
    required: ["ConfigurableDomain.xsd"],
}

prebuilt_etc_host {
    name: "SystemClass.xsd",
    owner: "intel",
    src: "upstream/schemas/SystemClass.xsd",
    sub_dir: "parameter-framework/Schemas",
    required: [
        "FileIncluder.xsd",
        "Subsystem.xsd",
    ],
}

prebuilt_etc_host {
    name: "ParameterSettings.xsd",
    owner: "intel",
    src: "upstream/schemas/ParameterSettings.xsd",
    sub_dir: "parameter-framework/Schemas",
}

prebuilt_etc_host {
    name: "FileIncluder.xsd",
    owner: "intel",
    src: "upstream/schemas/FileIncluder.xsd",
    sub_dir: "parameter-framework/Schemas",
}

prebuilt_etc_host {
    name: "Subsystem.xsd",
    owner: "intel",
    src: "upstream/schemas/Subsystem.xsd",
    sub_dir: "parameter-framework/Schemas",
    required: ["ComponentLibrary.xsd"],
}

prebuilt_etc_host {
    name: "ComponentLibrary.xsd",
    owner: "intel",
    src: "upstream/schemas/ComponentLibrary.xsd",
    sub_dir: "parameter-framework/Schemas",
    required: [
        "ComponentTypeSet.xsd",
        "W3cXmlAttributes.xsd",
    ],
}

prebuilt_etc_host {
    name: "ComponentTypeSet.xsd",
    owner: "intel",
    src: "upstream/schemas/ComponentTypeSet.xsd",
    sub_dir: "parameter-framework/Schemas",
    required: [
        "Parameter.xsd",
        "W3cXmlAttributes.xsd",
    ],
}

prebuilt_etc_host {
    name: "W3cXmlAttributes.xsd",
    owner: "intel",
    src: "upstream/schemas/W3cXmlAttributes.xsd",
    sub_dir: "parameter-framework/Schemas",
}

prebuilt_etc_host {
    name: "Parameter.xsd",
    owner: "intel",
    src: "upstream/schemas/Parameter.xsd",
    sub_dir: "parameter-framework/Schemas",
}

filegroup {
    name: "EddParser.py-srcs",
    srcs: ["upstream/tools/xmlGenerator/EddParser.py"],
    path: "upstream/tools/xmlGenerator/",
}

python_library_host {
    name: "EddParser.py",
    defaults: ["pfw_defaults"],
    owner: "intel",

    srcs: [":EddParser.py-srcs"],
    version: {
        py2: {
            enabled: true,
        },
        py3: {
            enabled: false,
        },
    },
}

filegroup {
    name: "PfwBaseTranslator.py-srcs",
    srcs: ["upstream/tools/xmlGenerator/PfwBaseTranslator.py"],
    path: "upstream/tools/xmlGenerator/",
}

python_library_host {
    name: "PfwBaseTranslator.py",
    defaults: ["pfw_defaults"],
    owner: "intel",

    srcs: [":PfwBaseTranslator.py-srcs"],
    version: {
        py2: {
            enabled: true,
        },
        py3: {
            enabled: false,
        },
    },
}

filegroup {
    name: "PFWScriptGenerator.py-srcs",
    srcs: ["upstream/tools/xmlGenerator/PFWScriptGenerator.py"],
    path: "upstream/tools/xmlGenerator/",
}

python_library_host {
    name: "PFWScriptGenerator.py",
    defaults: ["pfw_defaults"],
    owner: "intel",

    srcs: [":PFWScriptGenerator.py-srcs"],
    libs: [
        "PfwBaseTranslator.py",
        "EddParser.py",
    ],
    version: {
        py2: {
            enabled: true,
        },
        py3: {
            enabled: false,
        },
    },
}

cc_prebuilt_binary {
    name: "updateRoutageDomains.sh",
    defaults: ["pfw_defaults"],
    owner: "intel",

    host_supported: true,
    srcs: ["upstream/tools/xmlGenerator/updateRoutageDomains.sh"],
}

filegroup {
    name: "hostConfig.py-srcs",
    srcs: ["upstream/tools/xmlGenerator/hostConfig.py"],
    path: "upstream/tools/xmlGenerator/",
}

python_library_host {
    name: "hostConfig.py",
    defaults: ["pfw_defaults"],
    owner: "intel",

    srcs: [":hostConfig.py-srcs"],
    version: {
        py2: {
            enabled: true,
        },
        py3: {
            enabled: false,
        },
    },
}

python_binary_host {
    name: "domainGenerator.py",
    defaults: ["pfw_defaults"],
    owner: "intel",

    main: "upstream/tools/xmlGenerator/domainGenerator.py",
    srcs: ["upstream/tools/xmlGenerator/domainGenerator.py"],
    libs: [
        "EddParser.py",
        "hostConfig.py",
        "PFWScriptGenerator.py",
    ],
    version: {
        py2: {
            enabled: true,
        },
        py3: {
            enabled: false,
        },
    },
    required: [
        "domainGeneratorConnector",
    ],
}

cc_prebuilt_binary {
    name: "domainGenerator.sh",
    defaults: ["pfw_defaults"],
    owner: "intel",

    host_supported: true,
    srcs: ["upstream/tools/xmlGenerator/domainGenerator.sh"],
}

cc_prebuilt_binary {
    name: "lightRoutingUpdate.sh",
    defaults: ["pfw_defaults"],
    owner: "intel",

    host_supported: true,
    srcs: ["upstream/tools/xmlGenerator/lightRoutingUpdate.sh"],
}

//////////////////////////////////////////////////
