mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00

Gradle warns against passing a relative path to `new File(String)`: https://docs.gradle.org/current/userguide/working_with_files.html#sec:single_file_paths This change fixes all usages of `exoplayerRoot` to pass it to Gradle's `Project.file()` first, which returns an absolute `File`. To reproduce the problem in Issue: #8927: 1. Checkout ExoPlayer git project, to e.g. `~/ExoPlayer/exoplayer-git` 2. Create a new Android Studio project in e.g. `~/AndroidStudioProjects/exoplayer-test` 3. Edit the new project's `settings.gradle` file as described in https://github.com/google/ExoPlayer/blob/release-v2/README.md using a relative path for `exoplayerRoot`: ``` gradle.ext.exoplayerRoot = '../../ExoPlayer/exoplayer-git' ``` 4. In a shell: ```bash $ cd ~/AndroidStudioProjects/exoplayer-test/app $ ../gradlew build ``` (Step 4 is important, it seems running `./gradlew` from the project root doesn't trigger the relative path problem) This change fixes the problem, and also works with `exoplayerRoot` as a `File` or `Path` object. `String`, `File` and `Path` all work with relative or absolute paths: ``` gradle.ext.exoplayerRoot = '/home/ibaker/ExoPlayer/exoplayer-git' gradle.ext.exoplayerRoot = '../../ExoPlayer/exoplayer-git' gradle.ext.exoplayerRoot = new File('/home/ibaker/ExoPlayer/exoplayer-git') gradle.ext.exoplayerRoot = new File('../../ExoPlayer/exoplayer-git') gradle.ext.exoplayerRoot = Paths.get('/home/ibaker/ExoPlayer/exoplayer-git') gradle.ext.exoplayerRoot = Paths.get('../../ExoPlayer/exoplayer-git') ``` Note: The Path versions above require importing `java.nio.file.Paths` and changing the `apply from:` line in the project's settings.gradle file to something like: ``` apply from: file(gradle.ext.exoplayerRoot.resolve('core_settings.gradle')) ``` It's assumed that a project wanting to pass a `Path` will make these changes. Issue: #8927 PiperOrigin-RevId: 374421627
80 lines
4.5 KiB
Groovy
80 lines
4.5 KiB
Groovy
// Copyright (C) 2017 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.
|
|
def rootDir = file(gradle.ext.exoplayerRoot)
|
|
if (!gradle.ext.has('exoplayerSettingsDir')) {
|
|
gradle.ext.exoplayerSettingsDir = rootDir.getCanonicalPath()
|
|
}
|
|
def modulePrefix = ':'
|
|
if (gradle.ext.has('exoplayerModulePrefix')) {
|
|
modulePrefix += gradle.ext.exoplayerModulePrefix
|
|
}
|
|
|
|
include modulePrefix + 'library'
|
|
include modulePrefix + 'library-common'
|
|
include modulePrefix + 'library-core'
|
|
include modulePrefix + 'library-dash'
|
|
include modulePrefix + 'library-extractor'
|
|
include modulePrefix + 'library-hls'
|
|
include modulePrefix + 'library-rtsp'
|
|
include modulePrefix + 'library-smoothstreaming'
|
|
include modulePrefix + 'library-transformer'
|
|
include modulePrefix + 'library-ui'
|
|
include modulePrefix + 'robolectricutils'
|
|
include modulePrefix + 'testutils'
|
|
include modulePrefix + 'testdata'
|
|
include modulePrefix + 'extension-av1'
|
|
include modulePrefix + 'extension-ffmpeg'
|
|
include modulePrefix + 'extension-flac'
|
|
include modulePrefix + 'extension-gvr'
|
|
include modulePrefix + 'extension-ima'
|
|
include modulePrefix + 'extension-cast'
|
|
include modulePrefix + 'extension-cronet'
|
|
include modulePrefix + 'extension-mediasession'
|
|
include modulePrefix + 'extension-media2'
|
|
include modulePrefix + 'extension-okhttp'
|
|
include modulePrefix + 'extension-opus'
|
|
include modulePrefix + 'extension-vp9'
|
|
include modulePrefix + 'extension-rtmp'
|
|
include modulePrefix + 'extension-leanback'
|
|
include modulePrefix + 'extension-workmanager'
|
|
|
|
project(modulePrefix + 'library').projectDir = new File(rootDir, 'library/all')
|
|
project(modulePrefix + 'library-common').projectDir = new File(rootDir, 'library/common')
|
|
project(modulePrefix + 'library-core').projectDir = new File(rootDir, 'library/core')
|
|
project(modulePrefix + 'library-dash').projectDir = new File(rootDir, 'library/dash')
|
|
project(modulePrefix + 'library-extractor').projectDir = new File(rootDir, 'library/extractor')
|
|
project(modulePrefix + 'library-hls').projectDir = new File(rootDir, 'library/hls')
|
|
project(modulePrefix + 'library-rtsp').projectDir = new File(rootDir, 'library/rtsp')
|
|
project(modulePrefix + 'library-smoothstreaming').projectDir = new File(rootDir, 'library/smoothstreaming')
|
|
project(modulePrefix + 'library-transformer').projectDir = new File(rootDir, 'library/transformer')
|
|
project(modulePrefix + 'library-ui').projectDir = new File(rootDir, 'library/ui')
|
|
project(modulePrefix + 'robolectricutils').projectDir = new File(rootDir, 'robolectricutils')
|
|
project(modulePrefix + 'testutils').projectDir = new File(rootDir, 'testutils')
|
|
project(modulePrefix + 'testdata').projectDir = new File(rootDir, 'testdata')
|
|
project(modulePrefix + 'extension-av1').projectDir = new File(rootDir, 'extensions/av1')
|
|
project(modulePrefix + 'extension-ffmpeg').projectDir = new File(rootDir, 'extensions/ffmpeg')
|
|
project(modulePrefix + 'extension-flac').projectDir = new File(rootDir, 'extensions/flac')
|
|
project(modulePrefix + 'extension-gvr').projectDir = new File(rootDir, 'extensions/gvr')
|
|
project(modulePrefix + 'extension-ima').projectDir = new File(rootDir, 'extensions/ima')
|
|
project(modulePrefix + 'extension-cast').projectDir = new File(rootDir, 'extensions/cast')
|
|
project(modulePrefix + 'extension-cronet').projectDir = new File(rootDir, 'extensions/cronet')
|
|
project(modulePrefix + 'extension-mediasession').projectDir = new File(rootDir, 'extensions/mediasession')
|
|
project(modulePrefix + 'extension-media2').projectDir = new File(rootDir, 'extensions/media2')
|
|
project(modulePrefix + 'extension-okhttp').projectDir = new File(rootDir, 'extensions/okhttp')
|
|
project(modulePrefix + 'extension-opus').projectDir = new File(rootDir, 'extensions/opus')
|
|
project(modulePrefix + 'extension-vp9').projectDir = new File(rootDir, 'extensions/vp9')
|
|
project(modulePrefix + 'extension-rtmp').projectDir = new File(rootDir, 'extensions/rtmp')
|
|
project(modulePrefix + 'extension-leanback').projectDir = new File(rootDir, 'extensions/leanback')
|
|
project(modulePrefix + 'extension-workmanager').projectDir = new File(rootDir, 'extensions/workmanager')
|