diff --git a/.gitmodules b/.gitmodules index 6827e7af..d4170383 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "Nuake/dependencies/assimp"] path = Nuake/dependencies/assimp url = https://github.com/assimp/assimp.git +[submodule "Nuake/dependencies/bullet3"] + path = Nuake/dependencies/bullet3 + url = https://github.com/bulletphysics/bullet3.git diff --git a/Nuake/dependencies/bullet3 b/Nuake/dependencies/bullet3 new file mode 160000 index 00000000..0e124cb2 --- /dev/null +++ b/Nuake/dependencies/bullet3 @@ -0,0 +1 @@ +Subproject commit 0e124cb2f103c40de4afac6c100b7e8e1f5d9e15 diff --git a/Nuake/dependencies/bullet_p5.lua b/Nuake/dependencies/bullet_p5.lua new file mode 100644 index 00000000..23c1a52b --- /dev/null +++ b/Nuake/dependencies/bullet_p5.lua @@ -0,0 +1,116 @@ +project "BulletCollision" + location "bullet3/src/BulletCollision" + kind "StaticLib" + staticruntime "on" + + targetdir ("bullet3/bin/" .. outputdir .. "/%{prj.name}") + objdir ("bullet3/bin-obj/" .. outputdir .. "/%{prj.name}") + includedirs { + "bullet3/src", + } + + defines + { + "BT_THREADSAFE=1", + "BT_USE_DOUBLE_PRECISION" + } + + filter "system:windows" + systemversion "latest" + files + { + "bullet3/src/*.cpp", + "bullet3/src/*.h", + "bullet3/src/BulletCollision/BroadphaseCollision/*.cpp", + "bullet3/src/BulletCollision/BroadphaseCollision/*.h", + "bullet3/src/BulletCollision/CollisionDispatch/*.cpp", + "bullet3/src/BulletCollision/CollisionDispatch/*.h", + "bullet3/src/BulletCollision/CollisionShapes/*.cpp", + "bullet3/src/BulletCollision/CollisionShapes/*.h", + "bullet3/src/BulletCollision/Gimpact/*.cpp", + "bullet3/src/BulletCollision/Gimpact/*.h", + "bullet3/src/BulletCollision/NarrowPhaseCollision/*.cpp", + "bullet3/src/BulletCollision/NarrowPhaseCollision/*.h", + } + + filter "configurations:Debug" + runtime "Debug" + symbols "on" + + filter "configurations:Release" + runtime "Release" + optimize "on" + +project "BulletDynamics" + location "bullet3/src/BulletDynamics" + kind "StaticLib" + staticruntime "on" + + targetdir ("bullet3/bin/" .. outputdir .. "/%{prj.name}") + objdir ("bullet3/bin-obj/" .. outputdir .. "/%{prj.name}") + + includedirs { + "bullet3/src", + } + + defines + { + "BT_THREADSAFE=1", + "BT_USE_DOUBLE_PRECISION" + } + + filter "system:windows" + systemversion "latest" + files + { + "bullet3/src/BulletDynamics/Dynamics/*.cpp", + "bullet3/src/BulletDynamics/Dynamics/*.h", + "bullet3/src/BulletDynamics/ConstraintSolver/*.cpp", + "bullet3/src/BulletDynamics/ConstraintSolver/*.h", + "bullet3/src/BulletDynamics/Featherstone/*.cpp", + "bullet3/src/BulletDynamics/Featherstone/*.h", + "bullet3/src/BulletDynamics/MLCPSolvers/*.cpp", + "bullet3/src/BulletDynamics/MLCPSolvers/*.h", + "bullet3/src/BulletDynamics/Vehicle/*.cpp", + "bullet3/src/BulletDynamics/Vehicle/*.h", + "bullet3/src/BulletDynamics/Character/*.cpp", + "bullet3/src/BulletDynamics/Character/*.h" + } + + filter "configurations:Debug" + runtime "Debug" + symbols "on" + + filter "configurations:Release" + runtime "Release" + optimize "on" + + +project "LinearMath" + location "bullet3/src/LinearMath" + kind "StaticLib" + staticruntime "on" + + targetdir ("bullet3/bin/" .. outputdir .. "/%{prj.name}") + objdir ("bullet3/bin-obj/" .. outputdir .. "/%{prj.name}") + + includedirs { + "bullet3/src" + } + + filter "system:windows" + systemversion "latest" + files { + "bullet3/src/LinearMath/*.cpp", + "bullet3/src/LinearMath/*.h", + "bullet3/src/LinearMath/TaskScheduler/*.cpp", + "bullet3/src/LinearMath/TaskScheduler/*.h" + } + + filter "configurations:Debug" + runtime "Debug" + symbols "on" + + filter "configurations:Release" + runtime "Release" + optimize "on" diff --git a/premake5.lua b/premake5.lua index b6c838fa..c4f0402e 100644 --- a/premake5.lua +++ b/premake5.lua @@ -11,6 +11,7 @@ outputdir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}" include "Nuake/dependencies/glfw_p5.lua" include "Nuake/dependencies/assimp_p5.lua" +include "Nuake/dependencies/bullet_p5.lua" project "Nuake" location "Nuake" @@ -36,14 +37,14 @@ project "Nuake" "%{prj.name}/src/**.cpp", "%{prj.name}/src/Vendors/libmap/h/*.h", "%{prj.name}/src/Vendors/libmap/c/*.c", - "%{prj.name}/src/Vendors/msdfgen/**.h", - "%{prj.name}/src/Vendors/msdfgen/**.cpp", - "%{prj.name}/src/Vendors/msdf-atlas-gen/*.h", - "%{prj.name}/src/Vendors/msdf-atlas-gen/*.cpp", - "%{prj.name}/src/Vendors/wren/src/vm/*.h", - "%{prj.name}/src/Vendors/wren/src/vm/*.c", - "%{prj.name}/src/Vendors/katana-parser/*.h", - "%{prj.name}/src/Vendors/katana-parser/*.c" + "%{prj.name}/src/Vendors/msdfgen/**.h", + "%{prj.name}/src/Vendors/msdfgen/**.cpp", + "%{prj.name}/src/Vendors/msdf-atlas-gen/*.h", + "%{prj.name}/src/Vendors/msdf-atlas-gen/*.cpp", + "%{prj.name}/src/Vendors/wren/src/vm/*.h", + "%{prj.name}/src/Vendors/wren/src/vm/*.c", + "%{prj.name}/src/Vendors/katana-parser/*.h", + "%{prj.name}/src/Vendors/katana-parser/*.c" } includedirs @@ -52,12 +53,20 @@ project "Nuake" "%{prj.name}/../Nuake/src/Vendors", "%{prj.name}/../Nuake/Dependencies/GLEW/include", "%{prj.name}/../Nuake/Dependencies/GLFW/include", - "%{prj.name}/../Nuake/Dependencies/bullet/src", + "%{prj.name}/../Nuake/Dependencies/bullet3/src", "%{prj.name}/../Nuake/Dependencies/assimp/include", - "%{prj.name}/../Nuake/src/Vendors/msdfgen/include", - "%{prj.name}/../Nuake/src/Vendors/msdfgen/freetype/include", - "%{prj.name}/../Nuake/src/Vendors/msdfgen", - "%{prj.name}/../Nuake/src/Vendors/wren/src/include" + "%{prj.name}/../Nuake/Dependencies/build", + "%{prj.name}/../Nuake/src/Vendors/msdfgen/include", + "%{prj.name}/../Nuake/src/Vendors/msdfgen/freetype/include", + "%{prj.name}/../Nuake/src/Vendors/msdfgen", + "%{prj.name}/../Nuake/src/Vendors/wren/src/include" + } + + links + { + "BulletCollision", + "BulletDynamics", + "LinearMath", } filter "system:windows" @@ -71,6 +80,7 @@ project "Editor" targetdir ("bin/" .. outputdir .. "/%{prj.name}") objdir ("bin-int/" .. outputdir .. "/%{prj.name}") + files { "%{prj.name}/**.h", @@ -83,37 +93,34 @@ project "Editor" "%{prj.name}/../Nuake/src/Vendors", "%{prj.name}/../Nuake/Dependencies/GLEW/include", "%{prj.name}/../Nuake/Dependencies/GLFW/include", - "%{prj.name}/../Nuake/Dependencies/bullet/src", + "%{prj.name}/../Nuake/Dependencies/bullet3/src", "%{prj.name}/../Nuake/Dependencies/assimp/include", "%{prj.name}/../Nuake/Dependencies/build", "%{prj.name}/../Nuake/src/Vendors/msdfgen" } - libdirs { - "%{prj.name}/../Nuake/dependencies/GLFW/lib-vc2019", "%{prj.name}/../Nuake/dependencies/GLEW/lib/Release/x64", - "%{prj.name}/../Nuake/dependencies/bullet/lib/release/x64", "%{prj.name}/../Nuake/dependencies/assimp/lib/", "%{prj.name}/../Nuake/dependencies/freetype-windows-binaries/release static/win64", "%{prj.name}/../bin/%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}/Nuake/", - "%{prj.name}/../Nuake/src/Vendors/msdf/freetype/include", - "%{prj.name}/../Nuake/src/Vendors/msdfgen/freetype/win64", - "%{prj.name}/../Nuake/src/Vendors/msdfgen", - "%{prj.name}/../Nuake/src/Vendors/wren/src/include", + "%{prj.name}/../Nuake/src/Vendors/msdf/freetype/include", + "%{prj.name}/../Nuake/src/Vendors/msdfgen/freetype/win64", + "%{prj.name}/../Nuake/src/Vendors/msdfgen", + "%{prj.name}/../Nuake/src/Vendors/wren/src/include", } links { - "Nuake.lib", + "Nuake", "GLFW", "assimp", "glew32s.lib", "opengl32.lib", - "BulletCollision_vs2010_x64_release.lib", - "BulletDynamics_vs2010_x64_release.lib", - "LinearMath_vs2010_x64_release.lib", + "BulletCollision", + "BulletDynamics", + "LinearMath", "freetype.lib" }