summaryrefslogtreecommitdiff
path: root/archive/xmake.lua
diff options
context:
space:
mode:
Diffstat (limited to 'archive/xmake.lua')
-rw-r--r--archive/xmake.lua205
1 files changed, 205 insertions, 0 deletions
diff --git a/archive/xmake.lua b/archive/xmake.lua
new file mode 100644
index 0000000..3c05a70
--- /dev/null
+++ b/archive/xmake.lua
@@ -0,0 +1,205 @@
+-- set_project("celeritas")
+-- set_version("0.1.0")
+-- set_config("cc", "clang")
+
+-- add_rules("mode.debug", "mode.release") -- we have two modes: debug & release
+
+-- -- -Wall : base set of warnings
+-- -- -Wextra : additional warnings not covered by -Wall
+-- -- -Wundef : undefined macros
+-- -- -Wdouble-promotion : catch implicit converion of float to double
+-- add_cflags("-Wall", "-Wextra", "-Wundef", "-Wdouble-promotion")
+
+-- if is_mode("debug") then
+-- add_cflags("-g") -- Add debug symbols in debug mode
+-- add_defines("CDEBUG")
+-- elseif is_mode("release") then
+-- add_defines("CRELEASE")
+-- end
+
+-- -- Platform defines and system packages
+-- if is_plat("linux") then
+-- add_defines("CEL_PLATFORM_LINUX")
+-- add_syslinks("dl", "X11", "pthread") --, "vulkan")
+-- elseif is_plat("windows") then
+-- add_defines("CEL_PLATFORM_WINDOWS")
+-- add_syslinks("user32", "gdi32", "kernel32", "shell32")
+-- -- add_requires("vulkansdk", { system = true })
+-- -- add_links("pthreadVC2-w64")
+-- elseif is_plat("macosx") then
+-- add_defines("CEL_PLATFORM_MAC")
+-- add_frameworks("Cocoa", "IOKit", "CoreVideo", "OpenGL")
+-- add_frameworks("Foundation", "Metal", "QuartzCore")
+-- set_runenv("MTL_DEBUG_LAYER", "1")
+-- add_requires("vulkansdk", { system = true })
+-- -- add_syslinks("GL")
+-- end
+
+-- -- Compile GLFW from source
+-- package("local_glfw")
+-- add_deps("cmake")
+-- set_sourcedir(path.join(os.scriptdir(), "deps/glfw-3.3.8"))
+-- on_install(function(package)
+-- local configs = {}
+-- -- NOTE(omni): Keeping these around as comments in case we need to modify glfw flags
+-- -- table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
+-- -- table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
+-- import("package.tools.cmake").install(package, configs)
+-- end)
+-- on_test(function(package)
+-- -- assert(package:has_cfuncs("add", {includes = "foo.h"}))
+-- end)
+-- package_end()
+
+-- add_requires("local_glfw")
+
+-- local core_sources = {
+-- "deps/glad/src/glad.c",
+-- "src/*.c",
+-- "src/core/*.c",
+-- "src/logos/*.c",
+-- "src/maths/*.c",
+-- "src/platform/*.c",
+-- "src/ral/*.c",
+-- "src/ral/backends/opengl/*.c",
+-- "src/render/*.c",
+-- "src/resources/*.c",
+-- "src/std/*.c",
+-- "src/std/containers/*.c",
+-- "src/systems/*.c",
+-- }
+
+-- local unity_sources = {
+-- "deps/Unity/src/unity.c",
+-- "deps/Unity/extras/fixture/src/unity_fixture.c",
+-- "deps/Unity/extras/memory/src/unity_memory.c",
+-- }
+
+-- rule("compile_glsl_vert_shaders")
+-- set_extensions(".vert")
+-- on_buildcmd_file(function(target, batchcmds, sourcefile, opt)
+-- local targetfile = path.join(target:targetdir(), path.basename(sourcefile) .. ".vert.spv")
+
+-- print("Compiling shader: %s to %s", sourcefile, targetfile)
+-- batchcmds:vrunv('glslc', { sourcefile, "-o", targetfile })
+-- -- batchcmds:add_depfiles(sourcefile)
+-- end)
+
+-- rule("compile_glsl_frag_shaders")
+-- set_extensions(".frag")
+-- on_buildcmd_file(function(target, batchcmds, sourcefile, opt)
+-- local targetfile = path.join(target:targetdir(), path.basename(sourcefile) .. ".frag.spv")
+
+-- print("Compiling shader: %s to %s", sourcefile, targetfile)
+-- batchcmds:vrunv('glslc', { sourcefile, "-o", targetfile })
+-- -- batchcmds:add_depfiles(sourcefile)
+-- end)
+-- -- TODO: Metal shaders compilation
+
+-- -- common configuration for both static and shared libraries
+-- target("core_config")
+-- set_kind("static") -- kind is required but you can ignore it since it's just for common settings
+-- add_packages("local_glfw")
+-- add_defines("CEL_REND_BACKEND_OPENGL")
+-- add_includedirs("deps/cgltf", { public = true })
+-- add_includedirs("deps/glfw-3.3.8/include/GLFW", { public = true })
+-- add_includedirs("deps/glad/include", { public = true })
+-- add_includedirs("deps/stb_image", { public = true })
+-- add_includedirs("deps/stb_image_write", { public = true })
+-- add_includedirs("deps/stb_truetype", { public = true })
+-- add_includedirs("include/", { public = true })
+-- add_includedirs("src/", { public = true })
+-- add_includedirs("src/core", { public = true })
+-- add_includedirs("src/logos/", { public = true })
+-- add_includedirs("src/maths/", { public = true })
+-- add_includedirs("src/platform/", { public = true })
+-- add_includedirs("src/ral", { public = true })
+-- add_includedirs("src/ral/backends/opengl", { public = true })
+-- add_includedirs("src/render", { public = true })
+-- add_includedirs("src/ral/backends/vulkan", { public = true })
+-- add_includedirs("src/resources/", { public = true })
+-- add_includedirs("src/std/", { public = true })
+-- add_includedirs("src/std/containers", { public = true })
+-- add_includedirs("src/systems/", { public = true })
+-- add_files("src/empty.c") -- for some reason we need this on Mac so it doesnt call 'ar' with no files and error
+-- -- add_rules("compile_glsl_vert_shaders")
+-- -- add_rules("compile_glsl_frag_shaders")
+-- -- add_files("assets/shaders/*.frag")
+-- if is_plat("windows") then
+-- -- add_includedirs("$(env VULKAN_SDK)/Include", { public = true })
+-- -- add_linkdirs("$(env VULKAN_SDK)/Lib", { public = true })
+-- -- add_links("vulkan-1")
+-- end
+-- if is_plat("macosx") then
+-- -- add_files("src/renderer/backends/metal/*.m")
+-- -- add_files("src/ral/backends/vulkan/*.c")
+-- end
+-- set_default(false) -- prevents standalone building of this target
+
+-- target("core_static")
+-- set_kind("static")
+-- add_deps("core_config") -- inherit common configurations
+-- set_policy("build.merge_archive", true)
+-- add_files(core_sources)
+-- -- Link against static CRT
+-- if is_plat("windows") then
+-- add_links("libcmt", "legacy_stdio_definitions") -- for release builds
+-- add_links("libcmtd", "legacy_stdio_definitions") -- for debug builds
+-- end
+
+-- target("core_shared")
+-- set_kind("shared")
+-- add_deps("core_config") -- inherit common configurations
+-- add_files(core_sources)
+-- -- Link against dynamic CRT
+-- if is_plat("windows") then
+-- add_links("msvcrt", "legacy_stdio_definitions") -- for release builds
+-- add_links("msvcrtd", "legacy_stdio_definitions") -- for debug builds
+-- end
+
+-- -- target("main_loop")
+-- -- set_kind("binary")
+-- -- set_group("examples")
+-- -- add_deps("core_static")
+-- -- add_files("examples/main_loop/ex_main_loop.c")
+-- -- set_rundir("$(projectdir)")
+
+-- -- target("tri")
+-- -- set_kind("binary")
+-- -- set_group("examples")
+-- -- add_deps("core_static")
+-- -- add_files("examples/triangle/ex_triangle.c")
+-- -- set_rundir("$(projectdir)")
+-- -- if is_plat("macosx") then
+-- -- before_build(function (target)
+-- -- print("build metal shaders lib")
+-- -- os.exec("mkdir -p build/shaders")
+-- -- os.exec("xcrun -sdk macosx metal -c assets/shaders/triangle.metal -o build/shaders/gfx.air")
+-- -- os.exec("xcrun -sdk macosx metallib build/shaders/gfx.air -o build/gfx.metallib")
+-- -- end)
+-- -- end
+
+-- target("skinned")
+-- set_kind("binary")
+-- set_group("examples")
+-- add_deps("core_shared")
+-- add_files("examples/skinned_animation/ex_skinned_animation.c")
+-- set_rundir("$(projectdir)")
+
+-- target("game")
+-- set_kind("binary")
+-- set_group("examples")
+-- add_deps("core_static")
+-- add_files("examples/game_demo/game_demo.c")
+-- set_rundir("$(projectdir)")
+
+-- target("pool_tests")
+-- set_kind("binary")
+-- set_group("tests")
+-- add_deps("core_static")
+-- add_files(unity_sources)
+-- add_includedirs("deps/Unity/src", {public = true})
+-- add_includedirs("deps/Unity/extras/fixture/src", {public = true})
+-- add_includedirs("deps/Unity/extras/memory/src", {public = true})
+-- add_files("tests/pool_tests.c")
+-- add_files("tests/pool_test_runner.c")