Current section
Files
Jump to
Current section
Files
bundlex.exs
defmodule Exray.BundlexProject do
use Bundlex.Project
@includes ["./c_src/exray/"]
@lib_dirs @includes
@blob "https://github.com/raysan5/raylib/releases/download/5.0/raylib-5.0_linux_amd64.tar.gz"
@lib_name "libraylib"
@compiler_flags [
"-fPIC",
"-Wno-narrowing",
"-s",
"-O2",
"#{if Mix.env(:dbg), do: "-g", else: ""}"
]
@os_deps [
raylib: [{:precompiled, @blob, @lib_name}]
]
def project() do
[
natives: natives(Bundlex.get_target())
]
end
def natives(_platform) do
[
# -- Shared --
exray: [
sources: ["exray.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
# -- Core --
core_cursor: [
sources: ["./core/core_cursor.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
core_drawing: [
sources: ["./core/core_drawing.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
core_framecontrol: [
sources: ["./core/core_framecontrol.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
core_input_keyboard: [
sources: ["./core/core_input_keyboard.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
core_input_mouse: [
sources: ["./core/core_input_mouse.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
core_misc: [
sources: ["./core/core_misc.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
core_random: [
sources: ["./core/core_random.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
core_screenspace: [
sources: ["./core/core_screenspace.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
core_timing: [
sources: ["./core/core_timing.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
core_window: [
sources: ["./core/core_window.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
# -- Shapes --
shapes_basic: [
sources: ["./shapes/shapes_basic.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
shapes_collision: [
sources: ["./shapes/shapes_collision.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
shapes_spline: [
sources: ["./shapes/shapes_spline.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
# -- Text --
text_loading: [
sources: ["./text/text_loading.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
text_drawing: [
sources: ["./text/text_drawing.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
# -- Textures : Image --
textures_image_loading: [
sources: ["./textures/image/textures_image_loading.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
textures_image_generation: [
sources: ["./textures/image/textures_image_generation.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
# -- Textures : Texture --
textures_texture_loading: [
sources: ["./textures/texture/textures_texture_loading.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
],
textures_texture_drawing: [
sources: ["./textures/texture/textures_texture_drawing.cpp"],
interface: [:nif, :cnode],
includes: @includes,
lib_dirs: @lib_dirs,
preprocessor: Unifex,
language: :cpp,
os_deps: @os_deps,
compiler_flags: @compiler_flags
]
]
end
end