49 lines
1.8 KiB
CMake
49 lines
1.8 KiB
CMake
project(aorii_core)
|
|
set(CMAKE_CXX_STANDARD 26)
|
|
|
|
find_package(harfbuzz REQUIRED)
|
|
find_package(Eigen3 REQUIRED)
|
|
find_package(spdlog REQUIRED)
|
|
find_package(Boost REQUIRED)
|
|
find_package(Freetype REQUIRED)
|
|
find_package(Vulkan REQUIRED)
|
|
find_package(glfw3 REQUIRED)
|
|
|
|
if (APPLE)
|
|
find_library(COCOA_LIBRARY Cocoa)
|
|
endif ()
|
|
|
|
set(RENDERER_SOURCES "")
|
|
retrieve_files(${CMAKE_CURRENT_SOURCE_DIR} RENDERER_SOURCES)
|
|
|
|
add_library(${PROJECT_NAME} STATIC ${RENDERER_SOURCES})
|
|
target_link_libraries(${PROJECT_NAME} PUBLIC Freetype::Freetype glfw harfbuzz Eigen3::Eigen spdlog::spdlog msdfgen-full Boost::boost Vulkan::Vulkan)
|
|
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
|
target_compile_definitions(${PROJECT_NAME} PRIVATE NOMINMAX)
|
|
add_os_definitions(${PROJECT_NAME})
|
|
configure_glfw_native(${PROJECT_NAME})
|
|
if (APPLE)
|
|
target_link_libraries(${PROJECT_NAME} PUBLIC ${COCOA_LIBRARY})
|
|
endif ()
|
|
|
|
# 添加编译shader的自定义命令
|
|
shader_compile_target(${CMAKE_CURRENT_SOURCE_DIR}/shaders)
|
|
# 添加依赖, 当编译aorii_core时, 会先编译aorii_compile_shaders
|
|
add_dependencies(${PROJECT_NAME} aorii_compile_shaders)
|
|
|
|
# 如果需要编译example, 添加自定义命令用于拷贝shader文件
|
|
if (BUILD_EXAMPLE)
|
|
# 复制${SHADER_OUTPUT_DIR}文件到${CMAKE_CURRENT_BINARY_DIR}/example/resource/shaders
|
|
set(SOURCE_DIR ${SHADER_OUTPUT_DIR})
|
|
set(DEST_DIR ${CMAKE_BINARY_DIR}/example/resource/shaders)
|
|
|
|
# 添加自定义命令, 当外部目标compile_aorii_shaders被编译时, 将${SOURCE_DIR}文件复制到${DEST_DIR}
|
|
add_custom_command(
|
|
TARGET ${PROJECT_NAME}
|
|
POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEST_DIR}
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${SOURCE_DIR} ${DEST_DIR}
|
|
COMMENT "Copying shaders to ${DEST_DIR}"
|
|
)
|
|
endif ()
|