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