vulkan-hpp-tutorial/CMakeLists.txt

40 lines
1.2 KiB
CMake

cmake_minimum_required(VERSION 4.0.0)
# 请自行设置模块实验性标准
# set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD "......")
file(TO_CMAKE_PATH "$ENV{VCPKG_ROOT}" VCPKG_CMAKE_PATH)
set(CMAKE_TOOLCHAIN_FILE "${VCPKG_CMAKE_PATH}/scripts/buildsystems/vcpkg.cmake")
project(HelloCppModule LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_MODULE_STD 1)
include(cmake/VulkanHppModule.cmake)
find_package(glfw3 CONFIG REQUIRED)
find_package(glm CONFIG REQUIRED)
find_package(Stb REQUIRED)
find_package(tinyobjloader CONFIG REQUIRED)
find_package(unofficial-shaderc CONFIG REQUIRED)
file(GLOB_RECURSE CXX_CPP_FILES "src/*.cpp")
file(GLOB_RECURSE CXX_MODULE_FILES "src/*.cppm" "src/*.ixx")
add_executable(main ${CXX_CPP_FILES})
target_sources(main PRIVATE
FILE_SET cxx_modules
TYPE CXX_MODULES
FILES ${CXX_MODULE_FILES}
)
target_link_libraries(main PRIVATE VulkanHppModule)
target_link_libraries(main PRIVATE glm::glm)
target_link_libraries(main PRIVATE glfw )
target_include_directories(main PRIVATE ${Stb_INCLUDE_DIR})
target_link_libraries(main PRIVATE tinyobjloader::tinyobjloader)
target_link_libraries(main PRIVATE unofficial::shaderc::shaderc)
add_subdirectory(shaders)