//
// Copyright (C) 2012 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

// non-jarjar'd version of okhttp to compile the tests against
java_library_static {
    name: "okhttp-nojarjar",
    hostdex: true,

    srcs: [
        "okhttp/src/main/java/**/*.java",
        "okhttp-urlconnection/src/main/java/**/*.java",
        "okhttp-android-support/src/main/java/**/*.java",
        "okio/okio/src/main/java/**/*.java",
    ],

    target: {
        android: {
            srcs: ["android/main/java/**/*.java"],
            exclude_srcs: ["okhttp/src/main/java/com/squareup/okhttp/internal/Platform.java"],
        },
    },

    no_framework_libs: true,
    java_version: "1.7",
}

java_library {
    name: "okhttp",
    hostdex: true,
    jarjar_rules: "jarjar-rules.txt",
    static_libs: ["okhttp-nojarjar"],
    no_framework_libs: true,
    java_version: "1.7",
}

// A guaranteed unstripped version of okhttp.
// The build system may or may not strip the okhttp jar, but this one will
// not be stripped. See b/24535627.
java_library {
    name: "okhttp-testdex",
    static_libs: ["okhttp"],
    no_framework_libs: true,
    java_version: "1.7",
}

java_library_static {
    name: "okhttp-tests-nojarjar",

    srcs: [
        "android/test/java/**/*.java",
        "okhttp-android-support/src/test/java/**/*.java",
        "okhttp-testing-support/src/main/java/**/*.java",
        "okhttp-tests/src/test/java/**/*.java",
        "okhttp-urlconnection/src/test/java/**/*.java",
        "okhttp-ws/src/main/java/**/*.java",
        "okhttp-ws-tests/src/test/java/**/*.java",
        "okio/okio/src/test/java/**/*.java",
        "mockwebserver/src/main/java/**/*.java",
        "mockwebserver/src/test/java/**/*.java",
    ],
    // Exclude test Android currently has problems with due to @Parameterized (requires JUnit 4.11).
    exclude_srcs: ["okhttp-tests/src/test/java/com/squareup/okhttp/WebPlatformUrlTest.java"],
    libs: [
        "okhttp-nojarjar",
        "junit",
        "bouncycastle-unbundled",
        "conscrypt",
    ],
    no_framework_libs: true,
    java_version: "1.7",
}
