blob: 9c8ed677971895cf13bf09a63b691037607bb856 [file] [log] [blame]
# Copyright 2018 Google LLC
#
# 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
#
# https://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.
licenses(["notice"])
# Common include paths
sdl_includes = [
"include",
"src/video/khronos",
]
objc_library(
name = "sdl2_objc",
srcs = glob([
"src/**/*.h",
"include/*.h",
]),
includes = sdl_includes,
non_arc_srcs = glob([
"src/audio/coreaudio/*.m",
"src/file/cocoa/*.m",
"src/filesystem/cocoa/*.m",
"src/render/metal/*.m",
"src/video/cocoa/*.m",
]),
sdk_frameworks = [
"AudioToolbox",
"Carbon",
"CoreAudio",
"CoreVideo",
"Cocoa",
"ForceFeedback",
"IOKit",
"OpenGL",
"Metal",
],
alwayslink = 1,
)
sdl_srcs = glob(
include = [
"src/**/*.c",
"src/**/*.h",
],
exclude = [
"src/video/qnx/**",
"src/haptic/windows/**",
"src/test/*.c",
"src/thread/generic/*.c",
"src/core/linux/*.c",
],
)
# In general, we bundle SDL2. However, on Linux that would require a header
# generated by --configure, and a lot of buildflags and installing dev headers
# is in general less painful, so we just link it dynamically.
cc_library(
name = "sdl2",
srcs = select({
"@com_google_quic_trace//buildenv:linux": [],
"@com_google_quic_trace//buildenv:osx": sdl_srcs,
}),
hdrs = glob(["include/*.h"]),
includes = sdl_includes,
linkopts = select({
"@com_google_quic_trace//buildenv:linux": ["-lSDL2"],
"@com_google_quic_trace//buildenv:osx": [],
}),
textual_hdrs = glob(["src/thread/generic/*.c"]),
visibility = ["//visibility:public"],
deps = select({
"@com_google_quic_trace//buildenv:linux": [],
"@com_google_quic_trace//buildenv:osx": [":sdl2_objc"],
}),
)