build system update

-each dependency is now a module and is easier to intigrate into other projects
This commit is contained in:
Joseph Aquino 2025-12-28 05:03:36 -05:00
parent 312e14a231
commit 969f820419
15 changed files with 355 additions and 378 deletions

10
.gitignore vendored
View File

@ -396,12 +396,6 @@ Game/bin
imgui.ini imgui.ini
vendor/imgui-sfml/lib /lib/
vendor/sfml/lib build/
vendor/flac/lib
vendor/freetype/lib
vendor/ogg/lib
vendor/vorbis/lib/Release*
vendor/vorbis/lib/Debug*

View File

@ -1,3 +1,3 @@
#! /bin/bash #! /bin/bash
./vendor/premake5/premake5 premake-ninja ./vendor/premake5/premake5 premake-ninja
ninja $1 ninja $1 -C build

View File

@ -1,3 +1,3 @@
#! /bin/bash #! /bin/bash
./vendor/premake5/premake5 gmake ./vendor/premake5/premake5 gmake
make config=$1 make -C build config=$1

View File

@ -1,7 +1,7 @@
#! /bin/bash #! /bin/bash
if [ -z "$1" ] || [ $# -eq 0 ] if [ -z "$1" ] || [ $# -eq 0 ]
then then
ninja -t clean ninja -C build -t clean
else else
ninja -t clean $1 ninja -C build -t clean $1
fi fi

View File

@ -1,7 +1,7 @@
#! /bin/bash #! /bin/bash
if [ -z "$1" ] || [ $# -eq 0 ] if [ -z "$1" ] || [ $# -eq 0 ]
then then
make config=Debug clean && make config=Release clean make -C build config=Debug clean && make config=Release clean
else else
make config=$1 clean make -C build config=$1 clean
fi fi

View File

@ -1,116 +1,33 @@
require "ecc/ecc" require "ecc/ecc"
require "ninja/ninja" require "ninja/ninja"
local ogg = require("vendor/ogg/build-ogg")
local sfml = require("vendor/sfml/build-sfml")
local flac = require("vendor/flac/build-flac")
local vorbis = require("vendor/vorbis/build-vorbis")
local freetype = require("vendor/freetype/build-freetype")
local imguisfml = require("vendor/imgui-sfml/build-imgui-sfml")
workspace "snake" workspace "snake"
architecture "x64" architecture "x64"
startproject"snake" startproject"snake"
configurations staticruntime"off"
{
"Release",
"Debug"
}
defines location "build"
{
--"__STDC_LIMIT_MACROS=1" -- flac may or may not need this on modern computers configurations{"Debug", "Release"}
}
filter"system:linux" filter"system:linux"
pic"On" -- fix warning when statically linking <relocation against ... in read-only section .text> pic"On" -- fix warning when statically linking <relocation against ... in read-only section .text>
filter"" filter""
local project_dir = "./"
if _ACTION and _ACTION:match("vs") then
project_dir = "$(SolutionDir)"
else
project_dir = "%{wks.location}/"
end
output_dir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}" output_dir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"
intdir = project_dir .. "intermediate-files/" .. output_dir intdir = "../intermediate-files/"
bindir = project_dir .. "bin/" .. output_dir bindir = "../bin/" .. output_dir
libout = "lib/" .. output_dir liboutdir = "../lib/" .. output_dir
group "Dependencies" externalwarnings "Off"
include ("vendor/ogg/build-ogg.lua")
include ("vendor/vorbis/build-vorbis.lua")
include ("vendor/flac/build-flac.lua")
include ("vendor/freetype/build-freetype.lua")
include ("vendor/sfml/build-sfml.lua")
include("vendor/imgui-sfml/build-imgui-sfml.lua")
filter""
group""
project "snake"
output_dir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"
intdir = project_dir .. "intermediate-files/" .. output_dir
bindir = project_dir .. "bin/" .. output_dir
sfmldir = project_dir .. "vendor/sfml"
imguidir = project_dir .. "vendor/imgui-sfml"
include_dir = project_dir .. "include"
language "C++"
cppdialect "C++20"
systemversion "latest"
kind "WindowedApp"
targetname "snake"
targetdir (bindir)
objdir (intdir)
debugdir (project_dir)
links {"imgui-sfml", "sfml", "vorbis", "flac", "ogg", "freetype"}
includedirs
{
"src",
include_dir,
sfmldir .. "/include",
imguidir
}
files
{
"src/**.cpp",
"include/**.h",
"include/**.hpp",
}
--windows specific settings--
filter{"system:windows"}
defines {"PLATFORM_WINDOWS", "SFML_STATIC", "IMGUI_SFML_STATIC_LIB"}
staticruntime "off"
links
{
"legacy_stdio_definitions",
"opengl32",
"gdi32",
"winmm",
"ws2_32"
}
filter {"system:windows", "configurations:debug"}
defines{"_DEBUG", "_CONSOLE"}
filter {"system:windows", "configurations:release"}
defines{"NDEBUG"}
--linux specific settings--
filter {"system:linux"}
defines {"PLATFORM_LINUX"}
links
{
"Xi",
"Xrandr",
"Xcursor",
"X11",
"udev",
"pthread",
"OpenGL",
}
--config settings--
filter "configurations:debug" filter "configurations:debug"
defines {"LOG_ENABLE", "GAME_DEBUG"} defines {"LOG_ENABLE", "GAME_DEBUG"}
symbols "on" symbols "on"
@ -123,3 +40,54 @@ workspace "snake"
inlining "Auto" inlining "Auto"
symbols "off" symbols "off"
runtime "Release" runtime "Release"
filter""
group"Dependencies"
ogg.generateproject(liboutdir, intdir)
sfml.generateproject(liboutdir, intdir)
flac.generateproject(liboutdir, intdir)
vorbis.generateproject(liboutdir, intdir)
freetype.generateproject(liboutdir, intdir)
imguisfml.generateproject(liboutdir, intdir)
group""
project "snake"
language "C++"
cppdialect "C++20"
systemversion "latest"
kind "WindowedApp"
targetname "snake"
targetdir (bindir)
objdir (intdir)
debugdir (path.getabsolute(path.getdirectory(_SCRIPT)))
imguisfml.link()
sfml.link()
includedirs
{
"src",
"include",
}
files
{
"src/**.cpp",
"include/**.h",
"include/**.hpp",
}
--windows specific settings--
filter{"system:windows"}
defines {"PLATFORM_WINDOWS"}
filter {"system:windows", "configurations:debug"}
defines{"_DEBUG", "_CONSOLE"}
filter {"system:windows", "configurations:release"}
defines{"NDEBUG"}
--linux specific settings--
filter {"system:linux"}
defines {"PLATFORM_LINUX"}

View File

@ -1,9 +1,16 @@
project"flac" local m = {}
cppdialect"c++17"
local scriptdir = path.getabsolute(path.getdirectory(_SCRIPT))
local ogg = require("vendor/ogg/build-ogg")
function m.generateproject(liboutdir, intdir)
project"flac"
language"C" -- c++ will mangle names and sfml wont build
kind"staticLib" kind"staticLib"
targetdir (libout) targetdir (liboutdir)
staticruntime "off" objdir(intdir)
objdir("intermediate-files/" .. output_dir) warnings"Off"
ogg.link()
defines defines
{ {
@ -17,38 +24,43 @@ project"flac"
defines defines
{ {
"HAVE_LROUND",--fix error in lpc.c <Static declaration of 'lround' follows non-static declaration> "HAVE_LROUND",--fix error in lpc.c <Static declaration of 'lround' follows non-static declaration>
"HAVE_STDINT_H" --fix error in alloc.h <# error> "HAVE_STDINT_H", --fix error in alloc.h <# error>
} }
includedirs includedirs
{ {
"include", path.join(scriptdir, "include"),
"src/libFLAC/include", path.join(scriptdir, "src/libFLAC/include"),
"../ogg/include"
} }
files files
{ {
"src/libFLAC/**.c", path.join(scriptdir, "src/libFLAC/**.c"),
} }
removefiles removefiles
{ {
"src/libFLAC/deduplication/**" path.join(scriptdir, "src/libFLAC/deduplication/**"),
} }
filter"system:windows" filter"system:windows"
files files
{ {
"src/share/win_utf8_io/**.c" path.join(scriptdir, "src/share/win_utf8_io/**.c"),
} }
filter "configurations:Debug"
runtime "Debug"
symbols "on"
filter "configurations:Release"
runtime "Release"
optimize "Speed"
filter"" filter""
end
function m.link()
externalincludedirs
{
path.join(scriptdir, "include"),
path.join(scriptdir, "src/libFLAC/include"),
path.join(scriptdir, "../ogg/include")
}
links {"flac", "ogg"}
end
return m

View File

@ -1,63 +1,68 @@
project"freetype" local m = {}
kind"staticLib"
cppdialect"c++17"
targetdir (libout)
staticruntime "off"
objdir("intermediate-files/" .. output_dir)
includedirs {"include"} local scriptdir = path.getabsolute(path.getdirectory(_SCRIPT))
function m.generateproject(liboutdir, intdir)
project"freetype"
kind"staticLib"
language"C" -- c++ will mangle names and sfml wont build
targetdir (liboutdir)
objdir(intdir)
warnings"Off"
includedirs {path.join(scriptdir, "include")}
defines defines
{ {
"FT2_BUILD_LIBRARY", "FT2_BUILD_LIBRARY",
"NDEBUG", -- have freetype always be in release mode "NDEBUG", -- have freetype always be in release mode
"FT_DEBUG_LEVEL_ERROR=0", -- '' "FT_DEBUG_LEVEL_ERROR=0", -- fix linking errors <undefined reference...>
"FT_DEBUG_LEVEL_TRACE=0" -- fix linking errors <undefined reference...> "FT_DEBUG_LEVEL_TRACE=0" -- fix linking errors <undefined reference...>
} }
files files
{ {
"src/autofit/autofit.c", path.join(scriptdir, "src/autofit/autofit.c"),
"src/base/ftbase.c", path.join(scriptdir, "src/base/ftbase.c"),
"src/base/ftbbox.c", path.join(scriptdir, "src/base/ftbbox.c"),
"src/base/ftbdf.c", path.join(scriptdir, "src/base/ftbdf.c"),
"src/base/ftbitmap.c", path.join(scriptdir, "src/base/ftbitmap.c"),
"src/base/ftcid.c", path.join(scriptdir, "src/base/ftcid.c"),
"src/base/ftfstype.c", path.join(scriptdir, "src/base/ftfstype.c"),
"src/base/ftgasp.c", path.join(scriptdir, "src/base/ftgasp.c"),
"src/base/ftglyph.c", path.join(scriptdir, "src/base/ftglyph.c"),
"src/base/ftgxval.c", path.join(scriptdir, "src/base/ftgxval.c"),
"src/base/ftinit.c", path.join(scriptdir, "src/base/ftinit.c"),
"src/base/ftmm.c", path.join(scriptdir, "src/base/ftmm.c"),
"src/base/ftotval.c", path.join(scriptdir, "src/base/ftotval.c"),
"src/base/ftpatent.c", path.join(scriptdir, "src/base/ftpatent.c"),
"src/base/ftpfr.c", path.join(scriptdir, "src/base/ftpfr.c"),
"src/base/ftstroke.c", path.join(scriptdir, "src/base/ftstroke.c"),
"src/base/ftsynth.c", path.join(scriptdir, "src/base/ftsynth.c"),
"src/base/fttype1.c", path.join(scriptdir, "src/base/fttype1.c"),
"src/base/ftwinfnt.c", path.join(scriptdir, "src/base/ftwinfnt.c"),
"src/bdf/bdf.c", path.join(scriptdir, "src/bdf/bdf.c"),
"src/bzip2/ftbzip2.c", path.join(scriptdir, "src/bzip2/ftbzip2.c"),
"src/cache/ftcache.c", path.join(scriptdir, "src/cache/ftcache.c"),
"src/cff/cff.c", path.join(scriptdir, "src/cff/cff.c"),
"src/cid/type1cid.c", path.join(scriptdir, "src/cid/type1cid.c"),
"src/gzip/ftgzip.c", path.join(scriptdir, "src/gzip/ftgzip.c"),
"src/lzw/ftlzw.c", path.join(scriptdir, "src/lzw/ftlzw.c"),
"src/pcf/pcf.c", path.join(scriptdir, "src/pcf/pcf.c"),
"src/pfr/pfr.c", path.join(scriptdir, "src/pfr/pfr.c"),
"src/psaux/psaux.c", path.join(scriptdir, "src/psaux/psaux.c"),
"src/pshinter/pshinter.c", path.join(scriptdir, "src/pshinter/pshinter.c"),
"src/psnames/psnames.c", path.join(scriptdir, "src/psnames/psnames.c"),
"src/raster/raster.c", path.join(scriptdir, "src/raster/raster.c"),
"src/sdf/sdf.c", path.join(scriptdir, "src/sdf/sdf.c"),
"src/sfnt/sfnt.c", path.join(scriptdir, "src/sfnt/sfnt.c"),
"src/smooth/smooth.c", path.join(scriptdir, "src/smooth/smooth.c"),
"src/svg/svg.c", path.join(scriptdir, "src/svg/svg.c"),
"src/truetype/truetype.c", path.join(scriptdir, "src/truetype/truetype.c"),
"src/type1/type1.c", path.join(scriptdir, "src/type1/type1.c"),
"src/type42/type42.c", path.join(scriptdir, "src/type42/type42.c"),
"src/winfonts/winfnt.c", path.join(scriptdir, "src/winfonts/winfnt.c"),
"src/base/ftdebug.c" --fix linking errors related to FT_THROW, etc path.join(scriptdir, "src/base/ftdebug.c"), --fix linking errors related to FT_THROW, et)c
} }
filter "system:linux" filter "system:linux"
@ -67,25 +72,25 @@ project"freetype"
"HAVE_UNISTD_H" --fix error in ftsystem.c <implicit declaration of function read> "HAVE_UNISTD_H" --fix error in ftsystem.c <implicit declaration of function read>
} }
filter""
filter"system:windows" filter"system:windows"
files files
{ {
"builds/windows/ftsystem.c", path.join(scriptdir, "builds/windows/ftsystem.c"),
"builds/windows/ftdebug.c" path.join(scriptdir, "builds/windows/ftdebug.c"),
} }
filter"system:linux" filter"system:linux"
files{"builds/unix/ftsystem.c"} files{path.join(scriptdir, "builds/unix/ftsystem.c")}
filter "configurations:Debug" filter "configurations:Debug"
runtime "Debug" optimize"Speed"
symbols "on"
filter "configurations:Release"
runtime "Release"
optimize "Speed"
filter"" filter""
end
function m.link()
externalincludedirs{path.join(scriptdir, "include")}
links {"freetype"}
end
return m

View File

@ -1,3 +0,0 @@
*
!README
!.gitignore

View File

@ -1,2 +0,0 @@
This directory contains all the object files created when building the
library.

View File

@ -1,29 +1,35 @@
project"imgui-sfml" local m = {}
local scriptdir = path.getabsolute(path.getdirectory(_SCRIPT))
local sfml = require("vendor/sfml/build-sfml")
function m.generateproject(liboutdir, intdir)
project"imgui-sfml"
cppdialect"c++17" cppdialect"c++17"
kind"staticLib" kind"staticLib"
targetdir (libout) targetdir (liboutdir)
staticruntime "off" objdir(intdir)
objdir("intermediate-files/" .. output_dir) warnings"Off"
sfml.link()
includedirs includedirs
{ {
"../sfml/include", scriptdir,
"."
} }
files files
{ {
"imgui.cpp", path.join(scriptdir, "imgui.cpp"),
"imgui_draw.cpp", path.join(scriptdir, "imgui_draw.cpp"),
"imgui_tables.cpp", path.join(scriptdir, "imgui_tables.cpp"),
"imgui_widgets.cpp", path.join(scriptdir, "imgui_widgets.cpp"),
"imgui-SFML.cpp" path.join(scriptdir, "imgui-SFML.cpp"),
} }
end
filter "configurations:Debug" function m.link()
runtime "Debug" externalincludedirs{scriptdir, path.join(scriptdir, "../sfml/include")}
symbols "on" links {"imgui-sfml"}
end
filter "configurations:Release" return m
runtime "Release"
optimize "Speed"

View File

@ -1,24 +1,28 @@
project"ogg" local m = {}
cppdialect"c++17"
kind"staticLib"
targetdir (libout)
staticruntime "off"
objdir("intermediate-files/" .. output_dir)
includedirs"include" local scriptdir = path.getabsolute(path.getdirectory(_SCRIPT))
function m.generateproject(liboutdir, intdir)
project"ogg"
language"C" -- c++ will mangle names and sfml wont build
kind"staticLib"
targetdir (liboutdir)
objdir(intdir)
warnings"Off"
includedirs {path.join(scriptdir, "include")}
files files
{ {
"src/**.h", path.join(scriptdir, "src/**.h"),
"src/**.c" path.join(scriptdir, "src/**.c"),
} }
filter "configurations:Debug" end
runtime "Debug"
symbols "on"
filter "configurations:Release" function m.link()
runtime "Release" links{"ogg"}
optimize "Speed" externalincludedirs{path.join(scriptdir, "/include")}
end
filter"" return m

View File

@ -1,11 +1,22 @@
project"sfml" local m = {}
links{"freetype", "ogg", "flac", "vorbis"} local scriptdir = path.getabsolute(path.getdirectory(_SCRIPT))
local ogg = require("vendor/ogg/build-ogg")
local flac = require("vendor/flac/build-flac")
local vorbis = require("vendor/vorbis/build-vorbis")
local freetype = require("vendor/freetype/build-freetype")
function m.generateproject(liboutdir, intdir)
project"sfml"
cppdialect"c++17" cppdialect"c++17"
kind "staticLib" kind "staticLib"
targetdir (libout) targetdir (liboutdir)
staticruntime "off" objdir(intdir)
objdir("intermediate-files/" .. output_dir) warnings"Off"
freetype.link()
ogg.link()
flac.link()
vorbis.link()
defines defines
{ {
@ -20,52 +31,75 @@ project"sfml"
"SFML_IS_BIG_ENDIAN=0", "SFML_IS_BIG_ENDIAN=0",
"FT2_BUILD_LIBRARY", "FT2_BUILD_LIBRARY",
"FLAC__NO_DLL", "FLAC__NO_DLL",
"OV_EXCLUDE_STATIC_CALLBACKS" "OV_EXCLUDE_STATIC_CALLBACKS",
} }
includedirs includedirs
{ {
"include", path.join(scriptdir, "include"),
"src", path.join(scriptdir, "src"),
"extlibs/headers/glad/include", path.join(scriptdir, "extlibs/headers/glad/include"),
"extlibs/headers/mingw", path.join(scriptdir, "extlibs/headers/mingw"),
"extlibs/headers/miniaudio", path.join(scriptdir, "extlibs/headers/miniaudio"),
"extlibs/headers/minimp3", path.join(scriptdir, "extlibs/headers/minimp3"),
"extlibs/headers/stb_image", path.join(scriptdir, "extlibs/headers/stb_image"),
"extlibs/headers/vulkan", path.join(scriptdir, "extlibs/headers/vulkan"),
"../freetype/include",
"../ogg/include",
"../flac/include",
"../vorbis/include"
} }
files files
{ {
"include/SFML/**.hpp", path.join(scriptdir, "include/SFML/**.hpp"),
"include/SFML/**.inl", path.join(scriptdir, "include/SFML/**.inl"),
"src/SFML/**.hpp", path.join(scriptdir, "src/SFML/**.hpp"),
"src/SFML/**.cpp" path.join(scriptdir, "src/SFML/**.cpp"),
} }
filter"system:windows" filter"system:windows"
removefiles removefiles
{ {
"src/SFML/System/Unix/**", path.join(scriptdir, "src/SFML/System/Unix/**"),
"src/SFML/Window/Unix/**" path.join(scriptdir, "src/SFML/Window/Unix/**"),
path.join(scriptdir, "src/SFML/Network/Unix/**"),
} }
filter"system:linux" filter"system:linux"
removefiles removefiles
{ {
"src/SFML/System/Win32/**", path.join(scriptdir, "src/SFML/System/Win32/**"),
"src/SFML/Window/Win32/**", path.join(scriptdir, "src/SFML/Network/Win32/**"),
"src/SFML/Main/**" path.join(scriptdir, "src/SFML/Window/Win32/**"),
path.join(scriptdir, "src/SFML/Main/**"),
} }
filter "configurations:Debug" end
runtime "Debug"
symbols "on"
filter "configurations:Release" function m.link()
runtime "Release" defines{"SFML_STATIC"}
optimize "Speed" externalincludedirs
{
path.join(scriptdir, "include"),
path.join(scriptdir, "src"),
path.join(scriptdir, "extlibs/headers/glad/include"),
path.join(scriptdir, "extlibs/headers/mingw"),
path.join(scriptdir, "extlibs/headers/miniaudio"),
path.join(scriptdir, "extlibs/headers/minimp3"),
path.join(scriptdir, "extlibs/headers/stb_image"),
path.join(scriptdir, "extlibs/headers/vulkan"),
path.join(scriptdir, "../freetype/include"),
path.join(scriptdir, "../ogg/include"),
path.join(scriptdir, "../flac/include"),
path.join(scriptdir, "../vorbis/include")
}
links{"sfml", "freetype", "flac", "vorbis", "ogg"}
filter"system:windows"
links{"legacy_stdio_definitions", "opengl32", "gdi32", "winmm", "ws2_32", "openal32"}
filter"system:linux"
links{"Xi", "Xrandr", "Xcursor", "X11", "udev", "pthread", "OpenGL", "openal"}
end
return m

View File

@ -1,51 +0,0 @@
////////////////////////////////////////////////////////////
//
// SFML - Simple and Fast Multimedia Library
// Copyright (C) 2007-2025 Laurent Gomila (laurent@sfml-dev.org)
//
// This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it freely,
// subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented;
// you must not claim that you wrote the original software.
// If you use this software in a product, an acknowledgment
// in the product documentation would be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such,
// and must not be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source distribution.
//
////////////////////////////////////////////////////////////
#pragma once
////////////////////////////////////////////////////////////
// Headers
////////////////////////////////////////////////////////////
#include <SFML/Network/Ftp.hpp>
#include <SFML/Network/Http.hpp>
#include <SFML/Network/IpAddress.hpp>
#include <SFML/Network/Packet.hpp>
#include <SFML/Network/Socket.hpp>
#include <SFML/Network/SocketHandle.hpp>
#include <SFML/Network/SocketSelector.hpp>
#include <SFML/Network/TcpListener.hpp>
#include <SFML/Network/TcpSocket.hpp>
#include <SFML/Network/UdpSocket.hpp>
#include <SFML/System.hpp>
////////////////////////////////////////////////////////////
/// \defgroup network Network module
///
/// Socket-based communication, utilities and higher-level
/// network protocols (HTTP, FTP).
///
////////////////////////////////////////////////////////////

View File

@ -1,70 +1,80 @@
project"vorbis" local m = {}
cppdialect"c++17"
kind"staticLib"
targetdir (libout)
staticruntime "off"
objdir("intermediate-files/" .. output_dir)
links{"ogg"} local scriptdir = path.getabsolute(path.getdirectory(_SCRIPT))
local ogg = require("vendor/ogg/build-ogg")
function m.generateproject(liboutdir, intdir)
project"vorbis"
language"C" -- c++ will mangle names and sfml wont build
kind"staticLib"
targetdir (liboutdir)
objdir(intdir)
warnings"Off"
ogg.link()
includedirs includedirs
{ {
"include", path.join(scriptdir, "include"),
"lib", path.join(scriptdir, "lib"),
"../ogg/include"
} }
files files
{ {
"lib/envelope.h", path.join(scriptdir, "lib/envelope.h"),
"lib/lpc.h", path.join(scriptdir, "lib/lpc.h"),
"lib/lsp.h", path.join(scriptdir, "lib/lsp.h"),
"lib/codebook.h", path.join(scriptdir, "lib/codebook.h"),
"lib/misc.h", path.join(scriptdir, "lib/misc.h"),
"lib/psy.h", path.join(scriptdir, "lib/psy.h"),
"lib/masking.h", path.join(scriptdir, "lib/masking.h"),
"lib/os.h", path.join(scriptdir, "lib/os.h"),
"lib/mdct.h", path.join(scriptdir, "lib/mdct.h"),
"lib/smallft.h", path.join(scriptdir, "lib/smallft.h"),
"lib/highlevel.h", path.join(scriptdir, "lib/highlevel.h"),
"lib/registry.h", path.join(scriptdir, "lib/registry.h"),
"lib/scales.h", path.join(scriptdir, "lib/scales.h"),
"lib/window.h", path.join(scriptdir, "lib/window.h"),
"lib/lookup.h", path.join(scriptdir, "lib/lookup.h"),
"lib/lookup_data.h", path.join(scriptdir, "lib/lookup_data.h"),
"lib/codec_internal.h", path.join(scriptdir, "lib/codec_internal.h"),
"lib/backends.h", path.join(scriptdir, "lib/backends.h"),
"lib/bitrate.h", path.join(scriptdir, "lib/bitrate.h"),
"lib/mdct.c", path.join(scriptdir, "lib/mdct.c"),
"lib/smallft.c", path.join(scriptdir, "lib/smallft.c"),
"lib/block.c", path.join(scriptdir, "lib/block.c"),
"lib/envelope.c", path.join(scriptdir, "lib/envelope.c"),
"lib/window.c", path.join(scriptdir, "lib/window.c"),
"lib/lsp.c", path.join(scriptdir, "lib/lsp.c"),
"lib/lpc.c", path.join(scriptdir, "lib/lpc.c"),
"lib/analysis.c", path.join(scriptdir, "lib/analysis.c"),
"lib/synthesis.c", path.join(scriptdir, "lib/synthesis.c"),
"lib/psy.c", path.join(scriptdir, "lib/psy.c"),
"lib/info.c", path.join(scriptdir, "lib/info.c"),
"lib/floor1.c", path.join(scriptdir, "lib/floor1.c"),
"lib/floor0.c", path.join(scriptdir, "lib/floor0.c"),
"lib/res0.c", path.join(scriptdir, "lib/res0.c"),
"lib/mapping0.c", path.join(scriptdir, "lib/mapping0.c"),
"lib/registry.c", path.join(scriptdir, "lib/registry.c"),
"lib/codebook.c", path.join(scriptdir, "lib/codebook.c"),
"lib/sharedbook.c", path.join(scriptdir, "lib/sharedbook.c"),
"lib/lookup.c", path.join(scriptdir, "lib/lookup.c"),
"lib/bitrate.c", path.join(scriptdir, "lib/bitrate.c"),
"lib/vorbisfile.c", path.join(scriptdir, "lib/vorbisfile.c"),
"lib/vorbisenc.c", path.join(scriptdir, "lib/vorbisenc.c"),
} }
filter "configurations:Debug"
runtime "Debug"
symbols "on"
filter "configurations:Release"
runtime "Release"
optimize "Speed"
filter"" filter""
end
function m.link()
links {"vorbis", "ogg"}
externalincludedirs
{
path.join(scriptdir, "include"),
path.join(scriptdir, "lib"),
path.join(scriptdir, "../ogg/include")
}
end
return m