@@ -1,5 +1,11 @@
load("@rules_cc//cc:defs.bzl", "cc_library")
SFML_DEFINES = [
"SFML_STATIC",
"UNICODE",
"_UNICODE",
]
cc_library(
name = "system",
srcs = glob([
@@ -20,7 +26,7 @@ cc_library(
"include/SFML/System/*",
]),
copts = ["-Iexternal/sfml/src/"],
defines = ["SFML_STATIC"],
defines = SFML_DEFINES,
linkopts = select({
"@platforms//os:linux": [
"-ludev",
@@ -59,11 +65,7 @@ cc_library(
}),
hdrs = glob(["include/SFML/Window/*"]),
copts = ["-Iexternal/sfml/src/"],
defines = [
"SFML_STATIC",
"UNICODE",
"_UNICODE",
],
defines = SFML_DEFINES,
linkopts = select({
"@platforms//os:linux": [
"-lGL",
@@ -83,3 +85,55 @@ cc_library(
visibility = ["//visibility:public"],
deps = [":system"],
)
# TODO(robinlinden): Don't use checked-in libraries.
cc_library(
name = "freetype2",
srcs = select({
"@platforms//os:linux": [],
"@platforms//os:windows": ["extlibs/libs-msvc/x64/freetype.lib"],
}),
hdrs = glob(["extlibs/headers/freetype2/**/*.h"]),
linkopts = select({
"@platforms//os:linux": ["-lfreetype"],
"@platforms//os:windows": [],
}),
strip_include_prefix = "extlibs/headers/freetype2/",
)
cc_library(
name = "graphics",
srcs = glob(
include = [
"src/SFML/Graphics/*.cpp",
"src/SFML/Graphics/*.hpp",
],
) + select({
"@platforms//os:linux": glob([
"src/SFML/Graphics/Unix/*.cpp",
"src/SFML/Graphics/Unix/*.hpp",
]),
"@platforms//os:windows": glob([
"src/SFML/Graphics/Win32/*.cpp",
"src/SFML/Graphics/Win32/*.hpp",
]),
}),
hdrs = glob(["include/SFML/Graphics/*"]),
copts = ["-Iexternal/sfml/src/"],
defines = SFML_DEFINES,
linkopts = select({
"@platforms//os:linux": [
"-lGL",
"-lX11",
],
"@platforms//os:windows": [],
}),
strip_include_prefix = "include/",
visibility = ["//visibility:public"],
deps = [
":freetype2",
":window",
"@stb//:image",
"@stb//:image_write",
],
)