diff options
| author | sanine <sanine.not@pm.me> | 2022-10-01 20:59:36 -0500 | 
|---|---|---|
| committer | sanine <sanine.not@pm.me> | 2022-10-01 20:59:36 -0500 | 
| commit | c5fc66ee58f2c60f2d226868bb1cf5b91badaf53 (patch) | |
| tree | 277dd280daf10bf77013236b8edfa5f88708c7e0 /libs/ode-0.16.1/build | |
| parent | 1cf9cc3408af7008451f9133fb95af66a9697d15 (diff) | |
add ode
Diffstat (limited to 'libs/ode-0.16.1/build')
| -rw-r--r-- | libs/ode-0.16.1/build/config-default.h | 113 | ||||
| -rw-r--r-- | libs/ode-0.16.1/build/premake4.exe | bin | 0 -> 261632 bytes | |||
| -rw-r--r-- | libs/ode-0.16.1/build/premake4.lua | 590 | 
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 Binary files differnew file mode 100644 index 0000000..b4230f1 --- /dev/null +++ b/libs/ode-0.16.1/build/premake4.exe 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 +  | 
