cannam@89: ---------------------------------------------------------------------- cannam@89: -- Premake4 configuration script for LibLo cannam@89: -- Adapted from ODE's build script by Jason Perkins. cannam@89: -- For more information on Premake: http://industriousone.com/premake cannam@89: ---------------------------------------------------------------------- cannam@89: cannam@89: ---------------------------------------------------------------------- cannam@89: -- Configuration options cannam@89: ---------------------------------------------------------------------- cannam@89: cannam@89: -- always clean all of the optional components and toolsets cannam@89: if _ACTION == "clean" then cannam@89: for action in pairs(premake.actions) do cannam@89: os.rmdir(action) cannam@89: end cannam@89: end cannam@89: cannam@89: cannam@89: cannam@89: ---------------------------------------------------------------------- cannam@89: -- The solution, and solution-wide settings cannam@89: ---------------------------------------------------------------------- cannam@89: cannam@89: solution "liblo" cannam@89: cannam@89: language "C" cannam@89: location ( _OPTIONS["to"] or _ACTION ) cannam@89: cannam@89: includedirs { cannam@89: "../lo", cannam@89: "../src" cannam@89: } cannam@89: cannam@89: -- define all the possible build configurations cannam@89: configurations { cannam@89: "DebugDLL", "ReleaseDLL", cannam@89: "DebugLib", "ReleaseLib", cannam@89: } cannam@89: cannam@89: configuration { "Debug*" } cannam@89: defines { "_DEBUG" } cannam@89: flags { "Symbols" } cannam@89: cannam@89: configuration { "Release*" } cannam@89: flags { "OptimizeSpeed", "NoFramePointer" } cannam@89: cannam@89: configuration { "Windows" } cannam@89: defines { "WIN32" } cannam@89: cannam@89: -- give each configuration a unique output directory cannam@89: for _, name in ipairs(configurations()) do cannam@89: configuration { name } cannam@89: targetdir ( "../lib/" .. name ) cannam@89: end cannam@89: cannam@89: -- disable Visual Studio security warnings cannam@89: configuration { "vs*" } cannam@89: defines { "_CRT_SECURE_NO_DEPRECATE" } cannam@89: cannam@89: -- tell source to use config.h cannam@89: configuration { "vs*" } cannam@89: defines { "HAVE_CONFIG_H" } cannam@89: cannam@89: -- don't remember why we had to do this (from ODE) cannam@89: configuration { "vs2002 or vs2003", "*Lib" } cannam@89: flags { "StaticRuntime" } cannam@89: cannam@89: ---------------------------------------------------------------------- cannam@89: -- Write a custom to .., based on the supplied flags cannam@89: ---------------------------------------------------------------------- cannam@89: cannam@89: -- First get the version number from "configure.ac" -- cannam@89: cannam@89: io.input("../configure.ac") cannam@89: text = io.read("*all") cannam@89: io.close() cannam@89: text = string.sub(text,string.find(text, "AC_INIT.+")) cannam@89: version = string.sub(text,string.find(text, "%d+%.%d+")) cannam@89: cannam@89: -- Replace it in "config.h" -- cannam@89: cannam@89: io.input("config-msvc.h") cannam@89: local text = io.read("*all") cannam@89: cannam@89: text = string.gsub(text, '/%*VERSION%*/', '"'..version..'"') cannam@89: cannam@89: io.output("../config.h") cannam@89: io.write(text) cannam@89: io.close() cannam@89: cannam@89: ---------------------------------------------------------------------- cannam@89: -- Copy to ../lo cannam@89: ---------------------------------------------------------------------- cannam@89: cannam@89: io.input("lo_endian-msvc.h") cannam@89: io.output("../lo/lo_endian.h") cannam@89: local text = io.read("*all") cannam@89: io.write(text) cannam@89: io.close() cannam@89: cannam@89: ---------------------------------------------------------------------- cannam@89: -- The LibLo library project cannam@89: ---------------------------------------------------------------------- cannam@89: cannam@89: project "liblo" cannam@89: cannam@89: kind "StaticLib" cannam@89: location ( _OPTIONS["to"] or _ACTION ) cannam@89: cannam@89: includedirs { cannam@89: "..", cannam@89: } cannam@89: cannam@89: files { cannam@89: "../src/*.c", cannam@89: "../src/*.h", cannam@89: "../lo/*.h", cannam@89: "../src/liblo.def", cannam@89: } cannam@89: cannam@89: excludes { cannam@89: "../src/testlo.c", cannam@89: "../src/subtest.c", cannam@89: "../src/tools", cannam@89: } cannam@89: cannam@89: configuration { "windows" } cannam@89: links { "user32", cannam@89: "wsock32", cannam@89: "ws2_32", cannam@89: "pthreadVC2", cannam@89: } cannam@89: cannam@89: configuration { "*Lib" } cannam@89: kind "StaticLib" cannam@89: defines "LIBLO_LIB" cannam@89: cannam@89: configuration { "*DLL" } cannam@89: kind "SharedLib" cannam@89: defines "LIBLO_DLL" cannam@89: cannam@89: configuration { "Debug*" } cannam@89: targetname "liblo_d" cannam@89: cannam@89: configuration { "Release*" } cannam@89: targetname "liblo" cannam@89: cannam@89: cannam@89: ---------------------------------------------------------------------- cannam@89: -- The automated test application cannam@89: ---------------------------------------------------------------------- cannam@89: cannam@89: cannam@89: project "testlo" cannam@89: cannam@89: kind "ConsoleApp" cannam@89: location ( _OPTIONS["to"] or _ACTION ) cannam@89: links { "user32", cannam@89: "wsock32", cannam@89: "ws2_32", cannam@89: "pthreadVC2", cannam@89: } cannam@89: cannam@89: includedirs { cannam@89: "..", cannam@89: } cannam@89: cannam@89: files { cannam@89: "../src/testlo.c", cannam@89: } cannam@89: cannam@89: configuration { "DebugDLL" } cannam@89: links { "liblo_d" } cannam@89: libdirs { "../lib/debugdll" } cannam@89: cannam@89: configuration { "DebugLib" } cannam@89: links { "liblo_d" } cannam@89: libdirs { "../lib/debuglib" } cannam@89: cannam@89: configuration { "Release*" } cannam@89: links { "liblo" } cannam@89: cannam@89: project "subtest" cannam@89: cannam@89: kind "ConsoleApp" cannam@89: location ( _OPTIONS["to"] or _ACTION ) cannam@89: links { "user32", cannam@89: "wsock32", cannam@89: "ws2_32", cannam@89: "pthreadVC2", cannam@89: } cannam@89: cannam@89: includedirs { cannam@89: "..", cannam@89: } cannam@89: cannam@89: files { cannam@89: "../src/subtest.c", cannam@89: } cannam@89: cannam@89: configuration { "DebugDLL" } cannam@89: links { "liblo_d" } cannam@89: libdirs { "../lib/debugdll" } cannam@89: cannam@89: configuration { "DebugLib" } cannam@89: links { "liblo_d" } cannam@89: libdirs { "../lib/debuglib" } cannam@89: cannam@89: configuration { "Release*" } cannam@89: links { "liblo" }