225 lines
6.1 KiB
CMake
225 lines
6.1 KiB
CMake
|
|
set(DV_CORE_INCLUDE_FILES
|
|
include/dvc_config.h
|
|
include/dvc_pre_declare.h
|
|
)
|
|
source_group("include" FILES ${DV_CORE_INCLUDE_FILES})
|
|
|
|
#################
|
|
# math
|
|
#################
|
|
set(DV_CORE_MATH_INCLUDE_FILES
|
|
include/math/dvc_vector2.h
|
|
include/math/dvc_vector3.h
|
|
include/math/dvc_vector4.h
|
|
include/math/dvc_matrix3.h
|
|
include/math/dvc_matrix4.h
|
|
include/math/dvc_math_util.h
|
|
include/math/dvc_fix_point.h
|
|
)
|
|
source_group("include/math" FILES ${DV_CORE_MATH_INCLUDE_FILES})
|
|
|
|
set(DV_CORE_MATH_SOURCE_FILES
|
|
source/math/dvc_vector2.cpp
|
|
source/math/dvc_vector3.cpp
|
|
source/math/dvc_vector4.cpp
|
|
source/math/dvc_matrix3.cpp
|
|
source/math/dvc_matrix4.cpp
|
|
source/math/dvc_math_util.cpp
|
|
source/math/dvc_fix_point.cpp
|
|
)
|
|
source_group("source/math" FILES ${DV_CORE_MATH_SOURCE_FILES})
|
|
|
|
#################
|
|
# scene
|
|
#################
|
|
set(DV_CORE_SCENE_INCLUDE_FILES
|
|
include/scene/dvc_scene.h
|
|
include/scene/dvc_scene_node.h
|
|
)
|
|
source_group("include/scene" FILES ${DV_CORE_SCENE_INCLUDE_FILES})
|
|
|
|
set(DV_CORE_SCENE_SOURCE_FILES
|
|
source/scene/dvc_scene.cpp
|
|
source/scene/dvc_scene_node.cpp
|
|
)
|
|
source_group("source/scene" FILES ${DV_CORE_SCENE_SOURCE_FILES})
|
|
|
|
#################
|
|
# scene component
|
|
#################
|
|
set(DV_CORE_SCENE_COMPONENT_INCLUDE_FILES
|
|
include/scene/component/dvc_component.h
|
|
include/scene/component/dvc_mesh_component.h
|
|
include/scene/component/dvc_camera_component.h
|
|
include/scene/component/dvc_light_component.h
|
|
)
|
|
source_group("include/scene/component" FILES ${DV_CORE_SCENE_COMPONENT_INCLUDE_FILES})
|
|
|
|
set(DV_CORE_SCENE_COMPONENT_SOURCE_FILES
|
|
source/scene/component/dvc_component.cpp
|
|
source/scene/component/dvc_mesh_component.cpp
|
|
source/scene/component/dvc_camera_component.cpp
|
|
source/scene/component/dvc_light_component.cpp
|
|
)
|
|
source_group("source/scene/component" FILES ${DV_CORE_SCENE_COMPONENT_SOURCE_FILES})
|
|
|
|
#################
|
|
# asset
|
|
#################
|
|
set(DV_CORE_ASSET_INCLUDE_FILES
|
|
include/asset/dvc_mesh.h
|
|
)
|
|
source_group("include/asset" FILES ${DV_CORE_ASSET_INCLUDE_FILES})
|
|
|
|
set(DV_CORE_ASSET_SOURCE_FILES
|
|
source/asset/dvc_mesh.cpp
|
|
)
|
|
source_group("source/asset" FILES ${DV_CORE_ASSET_SOURCE_FILES})
|
|
|
|
#################
|
|
# device
|
|
#################
|
|
set(DV_CORE_DEVICE_INCLUDE_FILES
|
|
include/device/dvc_buffer.h
|
|
include/device/dvc_buffer_view.h
|
|
include/device/dvc_buffer_accessor.h
|
|
include/device/dvc_render_target.h
|
|
include/device/dvc_pixel_buffer.h
|
|
include/device/dvc_uniform_buffer.h
|
|
include/device/dvc_vertex_desc.h
|
|
)
|
|
source_group("include/device" FILES ${DV_CORE_DEVICE_INCLUDE_FILES})
|
|
|
|
set(DV_CORE_DEVICE_SOURCE_FILES
|
|
source/device/dvc_buffer.cpp
|
|
source/device/dvc_buffer_view.cpp
|
|
source/device/dvc_buffer_accessor.cpp
|
|
source/device/dvc_render_target.cpp
|
|
source/device/dvc_pixel_buffer.cpp
|
|
source/device/dvc_uniform_buffer.cpp
|
|
source/device/dvc_vertex_desc.cpp
|
|
)
|
|
source_group("source/device" FILES ${DV_CORE_DEVICE_SOURCE_FILES})
|
|
|
|
#################
|
|
# pipe
|
|
#################
|
|
set(DV_CORE_PIPE_INCLUDE_FILES
|
|
include/pipe/dvc_render_queue.h
|
|
include/pipe/dvc_renderable.h
|
|
include/pipe/dvc_renderable_entity.h
|
|
include/pipe/dvc_render_step_IA.h
|
|
include/pipe/dvc_render_step_VS.h
|
|
include/pipe/dvc_render_step_PS.h
|
|
)
|
|
source_group("include/pipe" FILES ${DV_CORE_PIPE_INCLUDE_FILES})
|
|
|
|
set(DV_CORE_PIPE_SOURCE_FILES
|
|
source/pipe/dvc_render_queue.cpp
|
|
source/pipe/dvc_renderable.cpp
|
|
source/pipe/dvc_renderable_entity.cpp
|
|
source/pipe/dvc_render_step_IA.cpp
|
|
source/pipe/dvc_render_step_VS.cpp
|
|
source/pipe/dvc_render_step_PS.cpp
|
|
)
|
|
source_group("source/pipe" FILES ${DV_CORE_PIPE_SOURCE_FILES})
|
|
|
|
#################
|
|
# rasterizer
|
|
#################
|
|
set(DV_CORE_RASTERIZER_INCLUDE_FILES
|
|
include/rasterizer/dvc_rasterizer_triangle.h
|
|
)
|
|
source_group("include/rasterizer" FILES ${DV_CORE_RASTERIZER_INCLUDE_FILES})
|
|
|
|
set(DV_CORE_RASTERIZER_SOURCE_FILES
|
|
source/rasterizer/dvc_rasterizer_triangle.cpp
|
|
)
|
|
source_group("source/rasterizer" FILES ${DV_CORE_RASTERIZER_SOURCE_FILES})
|
|
|
|
#################
|
|
# shader
|
|
#################
|
|
set(DV_CORE_SHADER_INCLUDE_FILES
|
|
include/shader/dvc_shader_interface.h
|
|
)
|
|
source_group("include/shader" FILES ${DV_CORE_SHADER_INCLUDE_FILES})
|
|
|
|
set(DV_CORE_SHADER_SOURCE_FILES
|
|
source/shader/dvc_shader_interface.cpp
|
|
)
|
|
source_group("source/shader" FILES ${DV_CORE_SHADER_SOURCE_FILES})
|
|
|
|
#################
|
|
# core library
|
|
#################
|
|
include_directories(
|
|
${DV_AUTO_INCLUDE_PATH}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
)
|
|
|
|
add_library(dv_core SHARED
|
|
${DV_CORE_INCLUDE_FILES}
|
|
${DV_CORE_MATH_INCLUDE_FILES}
|
|
${DV_CORE_MATH_SOURCE_FILES}
|
|
${DV_CORE_SCENE_INCLUDE_FILES}
|
|
${DV_CORE_SCENE_SOURCE_FILES}
|
|
${DV_CORE_SCENE_COMPONENT_INCLUDE_FILES}
|
|
${DV_CORE_SCENE_COMPONENT_SOURCE_FILES}
|
|
${DV_CORE_DEVICE_INCLUDE_FILES}
|
|
${DV_CORE_DEVICE_SOURCE_FILES}
|
|
${DV_CORE_ASSET_INCLUDE_FILES}
|
|
${DV_CORE_ASSET_SOURCE_FILES}
|
|
${DV_CORE_PIPE_INCLUDE_FILES}
|
|
${DV_CORE_PIPE_SOURCE_FILES}
|
|
${DV_CORE_RASTERIZER_INCLUDE_FILES}
|
|
${DV_CORE_RASTERIZER_SOURCE_FILES}
|
|
${DV_CORE_SHADER_INCLUDE_FILES}
|
|
${DV_CORE_SHADER_SOURCE_FILES}
|
|
)
|
|
|
|
target_compile_definitions(dv_core
|
|
PRIVATE DV_CORE_EXPORTS
|
|
)
|
|
|
|
#################
|
|
# copy runtime dll(for debug)
|
|
#################
|
|
add_custom_command(
|
|
TARGET dv_core POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:dv_core> ${CMAKE_BINARY_DIR}/source/console/$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>/$<TARGET_FILE_NAME:dv_core>
|
|
)
|
|
|
|
add_custom_command(
|
|
TARGET dv_core POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:dv_core> ${CMAKE_BINARY_DIR}/test/unit/$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>/$<TARGET_FILE_NAME:dv_core>
|
|
)
|
|
|
|
add_custom_command(
|
|
TARGET dv_core POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:dv_core> ${CMAKE_BINARY_DIR}/test/rasterization/$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>/$<TARGET_FILE_NAME:dv_core>
|
|
)
|
|
|
|
#################
|
|
# install
|
|
#################
|
|
|
|
install(DIRECTORY include/
|
|
DESTINATION include/core
|
|
FILES_MATCHING
|
|
PATTERN "*.h"
|
|
)
|
|
|
|
if(MSVC)
|
|
install(TARGETS dv_core
|
|
RUNTIME DESTINATION bin/$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>
|
|
ARCHIVE DESTINATION lib/$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>
|
|
)
|
|
else(MSVC)
|
|
install(TARGETS dv_core
|
|
RUNTIME DESTINATION bin
|
|
ARCHIVE DESTINATION lib
|
|
)
|
|
endif(MSVC)
|