2021-11-12 11:00:39 +01:00
|
|
|
cmake_minimum_required(VERSION 3.13)
|
2021-11-11 21:22:24 +01:00
|
|
|
|
2021-11-16 18:23:04 +01:00
|
|
|
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
|
2021-11-11 21:22:24 +01:00
|
|
|
|
2021-11-12 11:00:39 +01:00
|
|
|
project(AnimTestbed
|
|
|
|
VERSION 0.0.1
|
|
|
|
LANGUAGES CXX C)
|
2021-11-11 21:22:24 +01:00
|
|
|
|
|
|
|
find_package(Threads)
|
|
|
|
find_package(OpenGL REQUIRED)
|
|
|
|
|
|
|
|
# glfw
|
|
|
|
set(GLFW_BUILD_DOCS Off)
|
|
|
|
set(GLFW_BUILD_EXAMPLES Off)
|
|
|
|
set(GLFW_BUILD_TESTS Off)
|
|
|
|
set(GLFW_BUILD_INSTALL Off)
|
2021-11-12 11:00:39 +01:00
|
|
|
add_subdirectory(3rdparty/glfw)
|
2021-11-11 21:22:24 +01:00
|
|
|
|
|
|
|
# ozz
|
|
|
|
set(ozz_build_tools ON)
|
|
|
|
set(ozz_build_fbx OFF CACHE BOOL "")
|
|
|
|
set(ozz_build_gltf ON)
|
|
|
|
set(ozz_build_data OFF CACHE BOOL "")
|
|
|
|
set(ozz_build_samples OFF CACHE BOOL "")
|
|
|
|
set(ozz_build_howtos OFF CACHE BOOL "")
|
2022-02-11 16:51:18 +01:00
|
|
|
set(ozz_build_tests ON CACHE BOOL "")
|
2021-11-11 21:22:24 +01:00
|
|
|
set(ozz_build_simd_ref OFF CACHE BOOL "")
|
|
|
|
set(ozz_build_msvc_rt_dll OFF CACHE BOOL "")
|
2021-11-12 11:00:39 +01:00
|
|
|
add_subdirectory(3rdparty/ozz-animation)
|
2021-11-11 21:22:24 +01:00
|
|
|
|
2022-02-11 16:51:18 +01:00
|
|
|
set(ThirdPartyIncludeDeps
|
2021-11-12 11:00:39 +01:00
|
|
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
|
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/glfw/deps>
|
2021-11-16 18:15:56 +01:00
|
|
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/glfw/deps>
|
2021-11-12 11:00:39 +01:00
|
|
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/Handmade-Math>
|
|
|
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/imgui>
|
2022-02-11 16:51:18 +01:00
|
|
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/imnodes>
|
2021-11-16 18:15:56 +01:00
|
|
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/ozz-animation/include>
|
2021-11-12 11:00:39 +01:00
|
|
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/sokol>
|
|
|
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/vectorial/include>
|
2022-02-11 16:51:18 +01:00
|
|
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/>
|
2021-11-16 18:15:56 +01:00
|
|
|
)
|
2021-11-11 21:22:24 +01:00
|
|
|
|
2021-11-16 18:15:56 +01:00
|
|
|
# Shared code by main executable and tests
|
|
|
|
add_library(AnimTestbedCode OBJECT
|
2021-11-12 11:00:39 +01:00
|
|
|
src/Camera.c
|
2021-11-12 12:48:56 +01:00
|
|
|
src/SkinnedMesh.cc
|
|
|
|
src/SkinnedMesh.h
|
2021-11-19 12:40:14 +01:00
|
|
|
src/SyncTrack.cc
|
|
|
|
src/SyncTrack.h
|
2021-11-12 21:16:43 +01:00
|
|
|
src/AnimNode.cc
|
2021-11-12 22:12:25 +01:00
|
|
|
src/AnimNodes/AnimSamplerNode.cc
|
|
|
|
src/AnimNodes/SpeedScaleNode.cc
|
2021-11-19 22:52:08 +01:00
|
|
|
src/AnimNodes/BlendSpace1D.cc
|
2021-11-12 22:12:25 +01:00
|
|
|
src/AnimNodes/BlendNode.cc
|
2021-11-16 22:57:58 +01:00
|
|
|
src/AnimNodes/LockTranslationNode.cc
|
2021-11-12 21:16:43 +01:00
|
|
|
src/AnimationController.cc
|
2022-01-22 09:25:50 +01:00
|
|
|
src/ozzutils.cc
|
2021-11-12 11:00:39 +01:00
|
|
|
3rdparty/imgui/imgui.cpp
|
|
|
|
3rdparty/imgui/imgui_draw.cpp
|
|
|
|
3rdparty/imgui/imgui_widgets.cpp
|
2022-02-11 16:51:18 +01:00
|
|
|
3rdparty/imnodes/imnodes.cpp
|
|
|
|
src/AnimGraphResource.cc
|
|
|
|
src/AnimGraphResource.h src/AnimGraphEditor.cc src/AnimGraphEditor.h)
|
2021-11-16 18:15:56 +01:00
|
|
|
|
|
|
|
target_include_directories(
|
|
|
|
AnimTestbedCode
|
2022-01-22 09:25:50 +01:00
|
|
|
PUBLIC
|
|
|
|
src
|
2021-11-16 18:15:56 +01:00
|
|
|
${ThirdPartyIncludeDeps}
|
|
|
|
)
|
|
|
|
|
2022-02-11 16:51:18 +01:00
|
|
|
target_compile_features(AnimTestbedCode PRIVATE cxx_std_17)
|
|
|
|
|
2021-11-16 18:15:56 +01:00
|
|
|
# AnimTestbed Executable
|
|
|
|
add_executable(AnimTestbed)
|
|
|
|
target_include_directories(
|
|
|
|
AnimTestbed
|
2022-01-22 09:25:50 +01:00
|
|
|
PUBLIC
|
2021-11-16 18:15:56 +01:00
|
|
|
${ThirdPartyIncludeDeps}
|
|
|
|
)
|
|
|
|
|
|
|
|
target_sources(AnimTestbed PRIVATE
|
|
|
|
src/main.cc
|
|
|
|
src/SkinnedMeshRenderer.cc
|
|
|
|
3rdparty/glfw/deps/glad_gl.c
|
2021-11-12 11:00:39 +01:00
|
|
|
3rdparty/imgui/imgui_demo.cpp
|
|
|
|
3rdparty/imgui/backends/imgui_impl_glfw.cpp
|
|
|
|
3rdparty/imgui/backends/imgui_impl_opengl3.cpp
|
|
|
|
)
|
2021-11-16 18:15:56 +01:00
|
|
|
|
|
|
|
target_link_libraries(AnimTestbed AnimTestbedCode glfw ozz_base ozz_geometry ozz_animation ${OPENGL_LIBRARIES})
|
|
|
|
|
|
|
|
# Tests
|
|
|
|
add_executable(runtests)
|
|
|
|
|
2022-02-11 16:51:18 +01:00
|
|
|
target_sources(runtests PRIVATE
|
|
|
|
tests/AnimGraphResourceTests.cc
|
|
|
|
tests/AnimSampleNodeTests.cc
|
|
|
|
tests/SyncTrackTests.cc
|
|
|
|
tests/main.cc
|
|
|
|
)
|
|
|
|
|
2021-11-16 18:15:56 +01:00
|
|
|
target_include_directories(
|
|
|
|
runtests
|
2021-11-16 18:23:04 +01:00
|
|
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
|
2021-11-16 18:15:56 +01:00
|
|
|
${ThirdPartyIncludeDeps}
|
|
|
|
)
|
|
|
|
|
2022-02-11 16:51:18 +01:00
|
|
|
target_compile_features(runtests PRIVATE cxx_std_17)
|
|
|
|
|
2021-11-16 18:15:56 +01:00
|
|
|
target_link_libraries(runtests AnimTestbedCode glfw ozz_base ozz_geometry ozz_animation)
|