summaryrefslogtreecommitdiff
path: root/libs/ode-0.16.1/build
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2022-10-01 20:59:36 -0500
committersanine <sanine.not@pm.me>2022-10-01 20:59:36 -0500
commitc5fc66ee58f2c60f2d226868bb1cf5b91badaf53 (patch)
tree277dd280daf10bf77013236b8edfa5f88708c7e0 /libs/ode-0.16.1/build
parent1cf9cc3408af7008451f9133fb95af66a9697d15 (diff)
add ode
Diffstat (limited to 'libs/ode-0.16.1/build')
-rw-r--r--libs/ode-0.16.1/build/config-default.h113
-rw-r--r--libs/ode-0.16.1/build/premake4.exebin0 -> 261632 bytes
-rw-r--r--libs/ode-0.16.1/build/premake4.lua590
3 files changed, 703 insertions, 0 deletions
diff --git a/libs/ode-0.16.1/build/config-default.h b/libs/ode-0.16.1/build/config-default.h
new file mode 100644
index 0000000..a51e309
--- /dev/null
+++ b/libs/ode-0.16.1/build/config-default.h
@@ -0,0 +1,113 @@
+/* This file was autogenerated by Premake */
+#ifndef _ODE_CONFIG_H_
+#define _ODE_CONFIG_H_
+
+
+/******************************************************************
+ * CONFIGURATON SETTINGS - you can change these, and then rebuild
+ * ODE to modify the behavior of the library.
+ *
+ * dTRIMESH_ENABLED - enable/disable trimesh support
+ * dTRIMESH_OPCODE - use the OPCODE trimesh engine
+ * dTRIMESH_GIMPACT - use the GIMPACT trimesh engine
+ * Only one trimesh engine should be enabled.
+ *
+ * dTRIMESH_16BIT_INDICES (todo: opcode only)
+ * Setup the trimesh engine to use 16 bit
+ * triangle indices. The default is to use
+ * 32 bit indices. Use the dTriIndex type to
+ * detect the correct index size.
+ *
+ * dTRIMESH_OPCODE_USE_NEWOLD_TRIMESH_TRIMESH_COLLIDER
+ * Use old implementation of trimesh-trimesh collider
+ * (for backward compatibility only)
+ *
+ * dOU_ENABLED
+ * dATOMICS_ENABLED
+ * dTLS_ENABLED
+ * Use generic features of OU library, atomic API
+ * and TLS API respectively.
+ * Generic features and atomic API are always enabled,
+ * unless threading interface support is disabled.
+ * Using TLS for global variables allows calling ODE
+ * collision detection functions from multiple threads.
+ *
+ * dBUILTIN_THREADING_IMPL_ENABLED
+ * Include built-in multithreaded threading
+ * implementation (still must be created and assigned
+ * to be used).
+ *
+ ******************************************************************/
+
+#define dTRIMESH_ENABLED 1
+#define dTRIMESH_OPCODE 1
+#define dTRIMESH_16BIT_INDICES 0
+
+#define dTRIMESH_OPCODE_USE_OLD_TRIMESH_TRIMESH_COLLIDER 0
+
+/* #define dOU_ENABLED 1 */
+/* #define dATOMICS_ENABLED 1 */
+/* #define dTLS_ENABLED 1 */
+
+/* #define dTHREADING_INTF_DISABLED 1 */
+/* #define dBUILTIN_THREADING_IMPL_ENABLED 1 */
+
+
+/******************************************************************
+ * SYSTEM SETTINGS - you shouldn't need to change these. If you
+ * run into an issue with these settings, please report it to
+ * the ODE bug tracker at:
+ * http://sf.net/tracker/?group_id=24884&atid=382799
+ ******************************************************************/
+
+/* Try to identify the platform */
+#if defined(_XENON)
+ #define ODE_PLATFORM_XBOX360
+#elif defined(SN_TARGET_PSP_HW)
+ #define ODE_PLATFORM_PSP
+#elif defined(SN_TARGET_PS3)
+ #define ODE_PLATFORM_PS3
+#elif defined(_MSC_VER) || defined(__CYGWIN32__) || defined(__MINGW32__)
+ #define ODE_PLATFORM_WINDOWS
+#elif defined(__linux__)
+ #define ODE_PLATFORM_LINUX
+#elif defined(__APPLE__) && defined(__MACH__)
+ #define ODE_PLATFORM_OSX
+#else
+ #error "Need some help identifying the platform!"
+#endif
+
+/* Additional platform defines used in the code */
+#if defined(ODE_PLATFORM_WINDOWS) && !defined(WIN32)
+ #define WIN32
+#endif
+
+#if defined(__CYGWIN32__) || defined(__MINGW32__)
+ #define CYGWIN
+#endif
+
+#if defined(ODE_PLATFORM_OSX)
+ #define macintosh
+#endif
+
+#if !defined(ODE_PLATFORM_OSX) && !defined(ODE_PLATFORM_PS3)
+ #include <malloc.h>
+#endif
+
+#if !defined(ODE_PLATFORM_WINDOWS)
+ #include <alloca.h>
+#endif
+
+
+/* Basic OU functionality is required if either atomic API or TLS support
+ * is enabled. */
+#if (dATOMICS_ENABLED || dTLS_ENABLED) && !dOU_ENABLED
+#undef dOU_ENABLED
+#define dOU_ENABLED 1
+#endif
+
+
+#include "typedefs.h"
+
+
+#endif
diff --git a/libs/ode-0.16.1/build/premake4.exe b/libs/ode-0.16.1/build/premake4.exe
new file mode 100644
index 0000000..b4230f1
--- /dev/null
+++ b/libs/ode-0.16.1/build/premake4.exe
Binary files differ
diff --git a/libs/ode-0.16.1/build/premake4.lua b/libs/ode-0.16.1/build/premake4.lua
new file mode 100644
index 0000000..b97f6ac
--- /dev/null
+++ b/libs/ode-0.16.1/build/premake4.lua
@@ -0,0 +1,590 @@
+----------------------------------------------------------------------
+-- Premake4 configuration script for OpenDE
+-- Contributed by Jason Perkins (starkos@industriousone.com)
+-- For more information on Premake: http://industriousone.com/premake
+----------------------------------------------------------------------
+
+ ode_version = "0.16.1"
+
+----------------------------------------------------------------------
+-- Demo list: add/remove demos from here and the rest of the build
+-- should just work.
+----------------------------------------------------------------------
+
+ local demos = {
+ "boxstack",
+ "buggy",
+ "cards",
+ "chain1",
+ "chain2",
+ "collision",
+ "convex",
+ "crash",
+ "cylvssphere",
+ "dball",
+ "dhinge",
+ "feedback",
+ "friction",
+ "gyroscopic",
+ "gyro2",
+ "heightfield",
+ "hinge",
+ "I",
+ "jointPR",
+ "jointPU",
+ "joints",
+ "kinematic",
+ "motion",
+ "motor",
+ "ode",
+ "piston",
+ "plane2d",
+ "rfriction",
+ "slider",
+ "space",
+ "space_stress",
+ "step",
+ "transmission"
+ }
+
+ local trimesh_demos = {
+ "basket",
+ "cyl",
+ "moving_convex",
+ "moving_trimesh",
+ "tracks",
+ "trimesh"
+ }
+
+ if not _OPTIONS["no-trimesh"] then
+ demos = table.join(demos, trimesh_demos)
+ end
+
+
+
+----------------------------------------------------------------------
+-- Configuration options
+----------------------------------------------------------------------
+
+ newoption {
+ trigger = "with-demos",
+ description = "Builds the demo applications and DrawStuff library"
+ }
+
+ newoption {
+ trigger = "with-tests",
+ description = "Builds the unit test application"
+ }
+
+ newoption {
+ trigger = "with-gimpact",
+ description = "Use GIMPACT for trimesh collisions (experimental)"
+ }
+
+ newoption {
+ trigger = "all-collis-libs",
+ description = "Include sources of all collision libraries into the project"
+ }
+
+ newoption {
+ trigger = "with-libccd",
+ description = "Uses libccd for handling some collision tests absent in ODE."
+ }
+
+ newoption {
+ trigger = "no-dif",
+ description = "Exclude DIF (Dynamics Interchange Format) exports"
+ }
+
+ newoption {
+ trigger = "no-trimesh",
+ description = "Exclude trimesh collision geometry"
+ }
+
+ newoption {
+ trigger = "with-ou",
+ description = "Use TLS for global caches (allows threaded collision checks for separated spaces)"
+ }
+
+ newoption {
+ trigger = "no-builtin-threading-impl",
+ description = "Disable built-in multithreaded threading implementation"
+ }
+
+ newoption {
+ trigger = "no-threading-intf",
+ description = "Disable threading interface support (external implementations cannot be assigned)"
+ }
+
+ newoption {
+ trigger = "16bit-indices",
+ description = "Use 16-bit indices for trimeshes (default is 32-bit)"
+ }
+
+ newoption {
+ trigger = "old-trimesh",
+ description = "Use old OPCODE trimesh-trimesh collider"
+ }
+
+ newoption {
+ trigger = "to",
+ value = "path",
+ description = "Set the output location for the generated project files"
+ }
+
+ newoption {
+ trigger = "only-shared",
+ description = "Only build shared (DLL) version of the library"
+ }
+
+ newoption {
+ trigger = "only-static",
+ description = "Only build static versions of the library"
+ }
+
+ newoption {
+ trigger = "only-single",
+ description = "Only use single-precision math"
+ }
+
+ newoption {
+ trigger = "only-double",
+ description = "Only use double-precision math"
+ }
+
+ -- always clean all of the optional components and toolsets
+ if _ACTION == "clean" then
+ _OPTIONS["with-demos"] = ""
+ _OPTIONS["with-tests"] = ""
+ for action in premake.action.each() do
+ os.rmdir(action.trigger)
+ end
+ os.remove("../ode/src/config.h")
+ os.remove("../include/ode/version.h")
+ os.remove("../include/ode/precision.h")
+ os.remove("../libccd/src/ccd/precision.h")
+ end
+
+ -- special validation for Xcode
+ if _ACTION == "xcode3" and (not _OPTIONS["only-static"] and not _OPTIONS["only-shared"]) then
+ error(
+ "Xcode does not support different library types in a single project.\n" ..
+ "Please use one of the flags: --only-static or --only-shared", 0)
+ end
+
+ -- build the list of configurations, based on the flags. Ends up
+ -- with configurations like "Debug", "DebugSingle" or "DebugSingleShared"
+ local configs = { "Debug", "Release" }
+
+ local function addconfigs(...)
+ local newconfigs = { }
+ for _, root in ipairs(configs) do
+ for _, suffix in ipairs(arg) do
+ table.insert(newconfigs, root .. suffix)
+ end
+ end
+ configs = newconfigs
+ end
+
+
+ if not _OPTIONS["only-single"] and not _OPTIONS["only-double"] then
+ addconfigs("Single", "Double")
+ end
+
+ if not _OPTIONS["only-shared"] and not _OPTIONS["only-static"] then
+ addconfigs("DLL", "Lib")
+ end
+
+
+----------------------------------------------------------------------
+-- The solution, and solution-wide settings
+----------------------------------------------------------------------
+
+ solution "ode"
+
+ language "C++"
+ uuid "4DA77C12-15E5-497B-B1BB-5100D5161E15"
+ location ( _OPTIONS["to"] or _ACTION )
+
+ includedirs {
+ "../include",
+ "../ode/src"
+ }
+
+ defines { "_MT" }
+
+ -- apply the configuration list built above
+ configurations (configs)
+
+ configuration { "Debug*" }
+ defines { "_DEBUG" }
+ flags { "Symbols" }
+
+ configuration { "Release*" }
+ defines { "NDEBUG", "dNODEBUG" }
+ flags { "OptimizeSpeed", "NoFramePointer" }
+
+ configuration { "*Single*" }
+ defines { "dIDESINGLE", "CCD_IDESINGLE" }
+
+ configuration { "*Double*" }
+ defines { "dIDEDOUBLE", "CCD_IDEDOUBLE" }
+
+ configuration { "Windows" }
+ defines { "WIN32" }
+
+ configuration { "MacOSX" }
+ linkoptions { "-framework Carbon" }
+
+ -- give each configuration a unique output directory
+ for _, name in ipairs(configurations()) do
+ configuration { name }
+ targetdir ( "../lib/" .. name )
+ end
+
+ -- disable Visual Studio security warnings
+ configuration { "vs*" }
+ defines { "_CRT_SECURE_NO_DEPRECATE", "_SCL_SECURE_NO_WARNINGS" }
+
+ -- enable M_* macros from math.h
+ configuration { "vs*" }
+ defines { "_USE_MATH_DEFINES" }
+
+ -- don't remember why we had to do this
+ configuration { "vs2002 or vs2003", "*Lib" }
+ flags { "StaticRuntime" }
+
+
+
+----------------------------------------------------------------------
+-- The demo projects, automated from list above. These go first so
+-- they will be selected as the active project automatically in IDEs
+----------------------------------------------------------------------
+
+ if _OPTIONS["with-demos"] then
+ for _, name in ipairs(demos) do
+
+ project ( "demo_" .. name )
+
+ kind "ConsoleApp"
+ location ( _OPTIONS["to"] or _ACTION )
+ files { "../ode/demo/demo_" .. name .. ".*" }
+ links { "ode", "drawstuff" }
+
+ configuration { "Windows" }
+ files { "../drawstuff/src/resources.rc" }
+ links { "user32", "winmm", "gdi32", "opengl32", "glu32" }
+
+ configuration { "MacOSX" }
+ linkoptions { "-framework Carbon -framework OpenGL -framework AGL" }
+
+ configuration { "not Windows", "not MacOSX" }
+ links { "GL", "GLU" }
+
+ end
+ end
+
+
+
+----------------------------------------------------------------------
+-- The ODE library project
+----------------------------------------------------------------------
+
+ project "ode"
+
+ -- kind "StaticLib"
+ location ( _OPTIONS["to"] or _ACTION )
+
+ includedirs {
+ "../ode/src/joints",
+ "../OPCODE",
+ "../GIMPACT/include",
+ "../libccd/src/custom",
+ "../libccd/src"
+ }
+
+ files {
+ "../include/ode/*.h",
+ "../ode/src/joints/*.h",
+ "../ode/src/joints/*.cpp",
+ "../ode/src/*.h",
+ "../ode/src/*.c",
+ "../ode/src/*.cpp",
+ }
+
+ excludes {
+ "../ode/src/collision_std.cpp",
+ }
+
+ includedirs { "../ou/include" }
+ files { "../ou/include/**.h", "../ou/src/**.h", "../ou/src/**.cpp" }
+ defines { "_OU_NAMESPACE=odeou" }
+
+ if _OPTIONS["with-ou"] then
+ defines { "_OU_FEATURE_SET=_OU_FEATURE_SET_TLS" }
+ elseif not _OPTIONS["no-threading-intf"] then
+ defines { "_OU_FEATURE_SET=_OU_FEATURE_SET_ATOMICS" }
+ else
+ defines { "_OU_FEATURE_SET=_OU_FEATURE_SET_BASICS" }
+ end
+
+ if _OPTIONS["with-ou"] or not _OPTIONS["no-threading-intf"] then
+ if _ACTION == "gmake" then
+ if os.get() == "windows" then
+ buildoptions { "-mthreads" }
+ linkoptions { "-mthreads" }
+ defines { "HAVE_PTHREAD_ATTR_SETINHERITSCHED=1", "HAVE_PTHREAD_ATTR_SETSTACKLAZY=1" }
+ else
+ buildoptions { "-pthread" }
+ linkoptions { "-pthread" }
+ end
+ end
+ end
+
+
+ configuration { "no-dif" }
+ excludes { "../ode/src/export-dif.cpp" }
+
+ configuration { "no-trimesh" }
+ excludes {
+ "../ode/src/collision_trimesh_colliders.h",
+ "../ode/src/gimpact_contact_export_helper.cpp",
+ "../ode/src/gimpact_contact_export_helper.h",
+ "../ode/src/gimpact_gim_contact_accessor.h",
+ "../ode/src/gimpact_plane_contact_accessor.h",
+ "../ode/src/collision_trimesh_internal.cpp",
+ "../ode/src/collision_trimesh_opcode.cpp",
+ "../ode/src/collision_trimesh_gimpact.cpp",
+ "../ode/src/collision_trimesh_box.cpp",
+ "../ode/src/collision_trimesh_ccylinder.cpp",
+ "../ode/src/collision_cylinder_trimesh.cpp",
+ "../ode/src/collision_trimesh_ray.cpp",
+ "../ode/src/collision_trimesh_sphere.cpp",
+ "../ode/src/collision_trimesh_trimesh.cpp",
+ "../ode/src/collision_trimesh_trimesh_old.cpp",
+ "../ode/src/collision_trimesh_plane.cpp",
+ "../ode/src/collision_convex_trimesh.cpp"
+ }
+
+ configuration { "not no-trimesh", "with-gimpact or all-collis-libs" }
+ files { "../GIMPACT/**.h", "../GIMPACT/**.cpp" }
+
+ configuration { "not no-trimesh", "not with-gimpact" }
+ files { "../OPCODE/**.h", "../OPCODE/**.cpp" }
+
+ configuration { "not no-trimesh", "not all-collis-libs", "with-gimpact" }
+ excludes {
+ "../ode/src/collision_trimesh_opcode.cpp"
+ }
+
+ configuration { "not no-trimesh", "not all-collis-libs", "not with-gimpact" }
+ excludes {
+ "../ode/src/gimpact_contact_export_helper.cpp",
+ "../ode/src/gimpact_contact_export_helper.h",
+ "../ode/src/gimpact_gim_contact_accessor.h",
+ "../ode/src/gimpact_plane_contact_accessor.h",
+ "../ode/src/collision_trimesh_gimpact.cpp"
+ }
+
+ configuration { "with-libccd" }
+ files { "../libccd/src/custom/ccdcustom/*.h", "../libccd/src/ccd/*.h", "../libccd/src/*.c" }
+ defines { "dLIBCCD_ENABLED", "dLIBCCD_INTERNAL",
+ "dLIBCCD_BOX_CYL", "dLIBCCD_CYL_CYL", "dLIBCCD_CAP_CYL", "dLIBCCD_CONVEX_BOX",
+ "dLIBCCD_CONVEX_CAP", "dLIBCCD_CONVEX_CYL", "dLIBCCD_CONVEX_SPHERE", "dLIBCCD_CONVEX_CONVEX" }
+
+ configuration { "not with-libccd" }
+ excludes { "../ode/src/collision_libccd.cpp", "../ode/src/collision_libccd.h" }
+
+ configuration { "windows" }
+ links { "user32" }
+
+ configuration { "only-static or *Lib" }
+ kind "StaticLib"
+ defines "ODE_LIB"
+
+ configuration { "only-shared or *DLL" }
+ kind "SharedLib"
+ defines "ODE_DLL"
+
+ configuration { "*DLL" }
+ defines "_DLL"
+
+ configuration { "Debug" }
+ targetname "oded"
+
+ configuration { "Release" }
+ targetname "ode"
+
+ configuration { "DebugSingle*" }
+ targetname "ode_singled"
+
+ configuration { "ReleaseSingle*" }
+ targetname "ode_single"
+
+ configuration { "DebugDouble*" }
+ targetname "ode_doubled"
+
+ configuration { "ReleaseDouble*" }
+ targetname "ode_double"
+
+
+----------------------------------------------------------------------
+-- Write a custom <config.h> to build, based on the supplied flags
+----------------------------------------------------------------------
+
+ if _ACTION and _ACTION ~= "clean" then
+ local infile = io.open("config-default.h", "r")
+ local text = infile:read("*a")
+
+ if _OPTIONS["no-trimesh"] then
+ text = string.gsub(text, "#define dTRIMESH_ENABLED 1", "/* #define dTRIMESH_ENABLED 1 */")
+ text = string.gsub(text, "#define dTRIMESH_OPCODE 1", "/* #define dTRIMESH_OPCODE 1 */")
+ elseif (_OPTIONS["with-gimpact"]) then
+ text = string.gsub(text, "#define dTRIMESH_OPCODE 1", "#define dTRIMESH_GIMPACT 1")
+ end
+
+ text = string.gsub(text, "/%* #define dOU_ENABLED 1 %*/", "#define dOU_ENABLED 1")
+ if _OPTIONS["with-ou"] or not _OPTIONS["no-threading-intf"] then
+ text = string.gsub(text, "/%* #define dATOMICS_ENABLED 1 %*/", "#define dATOMICS_ENABLED 1")
+ end
+
+ if _OPTIONS["with-ou"] then
+ text = string.gsub(text, "/%* #define dTLS_ENABLED 1 %*/", "#define dTLS_ENABLED 1")
+ end
+
+ if _OPTIONS["no-threading-intf"] then
+ text = string.gsub(text, "/%* #define dTHREADING_INTF_DISABLED 1 %*/", "#define dTHREADING_INTF_DISABLED 1")
+ elseif not _OPTIONS["no-builtin-threading-impl"] then
+ text = string.gsub(text, "/%* #define dBUILTIN_THREADING_IMPL_ENABLED 1 %*/", "#define dBUILTIN_THREADING_IMPL_ENABLED 1")
+ end
+
+ if _OPTIONS["16bit-indices"] then
+ text = string.gsub(text, "#define dTRIMESH_16BIT_INDICES 0", "#define dTRIMESH_16BIT_INDICES 1")
+ end
+
+ if _OPTIONS["old-trimesh"] then
+ text = string.gsub(text, "#define dTRIMESH_OPCODE_USE_OLD_TRIMESH_TRIMESH_COLLIDER 0", "#define dTRIMESH_OPCODE_USE_OLD_TRIMESH_TRIMESH_COLLIDER 1")
+ end
+
+ local outfile = io.open("../ode/src/config.h", "w")
+ outfile:write(text)
+ outfile:close()
+ end
+
+----------------------------
+-- Write precision headers
+----------------------------
+ if _ACTION and _ACTION ~= "clean" then
+ function generateheader(headerfile, placeholder, precstr)
+ local outfile = io.open(headerfile, "w")
+ for i in io.lines(headerfile .. ".in")
+ do
+ local j,_ = string.gsub(i, placeholder, precstr)
+ --print("writing " .. j .. " into " .. headerfile)
+ outfile:write(j .. "\n")
+ end
+ outfile:close()
+ end
+
+ function generate(precstr)
+ generateheader("../include/ode/precision.h", "@ODE_PRECISION@", "d" .. precstr)
+ generateheader("../libccd/src/ccd/precision.h", "@CCD_PRECISION@", "CCD_" .. precstr)
+ end
+
+ if _OPTIONS["only-single"] then
+ generate("SINGLE")
+ elseif _OPTIONS["only-double"] then
+ generate("DOUBLE")
+ else
+ generate("UNDEFINEDPRECISION")
+ end
+
+ generateheader("../include/ode/version.h", "@ODE_VERSION@", ode_version)
+
+ end
+
+
+----------------------------------------------------------------------
+-- The DrawStuff library project
+----------------------------------------------------------------------
+
+ if _OPTIONS["with-demos"] then
+
+ project "drawstuff"
+
+ location ( _OPTIONS["to"] or _ACTION )
+
+ files {
+ "../include/drawstuff/*.h",
+ "../drawstuff/src/internal.h",
+ "../drawstuff/src/drawstuff.cpp"
+ }
+
+ configuration { "Debug*" }
+ targetname "drawstuffd"
+
+ configuration { "only-static or *Lib" }
+ kind "StaticLib"
+ defines { "DS_LIB" }
+
+ configuration { "only-shared or *DLL" }
+ kind "SharedLib"
+ defines { "DS_DLL", "USRDLL" }
+
+ configuration { "Windows" }
+ files { "../drawstuff/src/resource.h", "../drawstuff/src/resources.rc", "../drawstuff/src/windows.cpp" }
+ links { "user32", "opengl32", "glu32", "winmm", "gdi32" }
+
+ configuration { "MacOSX" }
+ defines { "HAVE_APPLE_OPENGL_FRAMEWORK" }
+ files { "../drawstuff/src/osx.cpp" }
+ linkoptions { "-framework Carbon -framework OpenGL -framework AGL" }
+
+ configuration { "not Windows", "not MacOSX" }
+ files { "../drawstuff/src/x11.cpp" }
+ links { "X11", "GL", "GLU" }
+
+ end
+
+
+----------------------------------------------------------------------
+-- The automated test application
+----------------------------------------------------------------------
+
+
+ if _OPTIONS["with-tests"] then
+
+ project "tests"
+
+ kind "ConsoleApp"
+ location ( _OPTIONS["to"] or _ACTION )
+
+ includedirs {
+ "../tests/UnitTest++/src"
+ }
+
+ files {
+ "../tests/*.cpp",
+ "../tests/joints/*.cpp",
+ "../tests/UnitTest++/src/*"
+ }
+
+ links { "ode" }
+
+ configuration { "Windows" }
+ files { "../tests/UnitTest++/src/Win32/*" }
+
+ configuration { "not Windows" }
+ files { "../tests/UnitTest++/src/Posix/*" }
+
+ -- add post-build step to automatically run test executable
+ local path_to_lib = path.getrelative(location(), "../lib")
+ local command = path.translate(path.join(path_to_lib, "%s/tests"))
+
+ for _, name in ipairs(configurations()) do
+ configuration { name }
+ postbuildcommands { command:format(name) }
+ end
+
+ end
+