AnimTestbed/CMakeLists.txt

127 lines
4.0 KiB
CMake
Raw Permalink Normal View History

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
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)
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 "")
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 "")
add_subdirectory(3rdparty/ozz-animation)
2021-11-11 21:22:24 +01:00
set(ThirdPartyIncludeDeps
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/glfw/deps>
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/glfw/deps>
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/Handmade-Math>
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/imgui>
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/imnodes>
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/ozz-animation/include>
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/sokol>
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/vectorial/include>
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/>
)
2021-11-11 21:22:24 +01:00
# Shared code by main executable and tests
add_library(AnimTestbedCode OBJECT
src/SyncTrack.cc
src/SyncTrack.h
src/ozzutils.cc
2022-03-25 11:46:44 +01:00
src/AnimGraph/AnimGraphResource.cc
src/AnimGraph/AnimGraphResource.h
src/AnimGraph/AnimGraph.cc
2023-03-26 13:25:44 +02:00
src/AnimGraph/AnimGraph.h
src/AnimGraph/AnimGraphNodes.cc
src/AnimGraph/AnimGraphNodes.h
src/AnimGraph/AnimGraphData.cc
src/AnimGraph/AnimGraphData.h)
target_include_directories(
AnimTestbedCode
PUBLIC
src
${ThirdPartyIncludeDeps}
)
target_compile_features(AnimTestbedCode PRIVATE cxx_std_17)
# AnimTestbed Executable
add_executable(AnimTestbed)
target_include_directories(
AnimTestbed
PUBLIC
${ThirdPartyIncludeDeps}
)
target_sources(AnimTestbed PRIVATE
src/main.cc
src/SkinnedMeshRenderer.cc
src/AnimGraph/AnimGraphEditor.cc
src/AnimGraph/AnimGraphEditor.h
src/Camera.c
src/SkinnedMesh.cc
src/SkinnedMesh.h
src/SkinnedMeshResource.cc
src/SkinnedMeshResource.h
3rdparty/glfw/deps/glad_gl.c
3rdparty/imgui/imgui.cpp
3rdparty/imgui/imgui_draw.cpp
3rdparty/imgui/imgui_widgets.cpp
3rdparty/imgui/misc/cpp/imgui_stdlib.cpp
3rdparty/imnodes/imnodes.cpp
3rdparty/imgui/imgui_demo.cpp
3rdparty/imgui/backends/imgui_impl_glfw.cpp
3rdparty/imgui/backends/imgui_impl_opengl3.cpp
)
target_link_libraries(AnimTestbed AnimTestbedCode glfw ozz_base ozz_geometry ozz_animation ${OPENGL_LIBRARIES})
# Tests
add_executable(runtests)
set(ozz_offline_test_objs
3rdparty/ozz-animation/src/animation/offline/skeleton_builder.cc
3rdparty/ozz-animation/src/animation/offline/raw_skeleton.cc
3rdparty/ozz-animation/src/animation/offline/animation_builder.cc
3rdparty/ozz-animation/src/animation/offline/raw_animation.cc
)
target_sources(runtests PRIVATE
tests/AnimGraphResourceTests.cc
tests/AnimGraphEvalTests.cc
tests/NodeDescriptorTests.cc
tests/SyncTrackTests.cc
tests/main.cc
${ozz_offline_test_objs}
)
target_include_directories(
runtests
2021-11-16 18:23:04 +01:00
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/ozz-animation/src>
${ThirdPartyIncludeDeps}
)
target_compile_features(runtests PRIVATE cxx_std_17)
target_link_libraries(runtests AnimTestbedCode glfw ozz_base ozz_geometry ozz_animation)