libtomcrypt = { settings = nil } function libtomcrypt.setup(settings) if not settings.source then error("Missing source") end libtomcrypt.settings = settings if not libtomcrypt.settings.defines then libtomcrypt.settings.defines = {} end end function libtomcrypt.import() if not libtomcrypt.settings then error("Run libtomcrypt.setup first") end links { "libtomcrypt" } libtomcrypt.includes() end function libtomcrypt.includes() if not libtomcrypt.settings then error("Run libtomcrypt.setup first") end defines(libtomcrypt.settings.defines) includedirs { path.join(libtomcrypt.settings.source, "src/headers") } end function libtomcrypt.project() if not libtomcrypt.settings then error("Run libtomcrypt.setup first") end project "libtomcrypt" language "C" libtomcrypt.includes() files { path.join(libtomcrypt.settings.source, "src/**.c"), } removefiles { path.join(libtomcrypt.settings.source, "src/**/*tab.c"), -- included by files as necessary already afaik path.join(libtomcrypt.settings.source, "src/encauth/ocb3/**.c"), -- fails in Visual Studio with invalid syntax } defines { "_CRT_SECURE_NO_WARNINGS", "LTC_SOURCE", -- we are compiling from source code } -- dependencies if libtommath and libtommath.settings then defines { "USE_LTM" } libtommath.import() end -- not our code, ignore POSIX usage warnings for now warnings "Off" defines { "_LIB" } removedefines { "_DLL", "_USRDLL" } kind "StaticLib" end