102 lines
3.5 KiB
CMake
102 lines
3.5 KiB
CMake
cmake_minimum_required(VERSION 3.22.1)
|
|
|
|
project("sample")
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
|
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
|
message(STATUS "Building for Android")
|
|
|
|
include_directories(
|
|
vulkan
|
|
${CMAKE_CURRENT_LIST_DIR}/vulkan
|
|
${CMAKE_CURRENT_LIST_DIR}/vulkan/framework
|
|
${CMAKE_CURRENT_LIST_DIR}/vulkan/components
|
|
${CMAKE_CURRENT_LIST_DIR}/vulkan/components/core
|
|
${CMAKE_CURRENT_LIST_DIR}/vulkan/components/core/include
|
|
${CMAKE_CURRENT_LIST_DIR}/third_party
|
|
${CMAKE_CURRENT_LIST_DIR}/third_party/vma
|
|
${CMAKE_CURRENT_LIST_DIR}/third_party/vma/include
|
|
${CMAKE_CURRENT_LIST_DIR}/third_party/volk
|
|
${CMAKE_CURRENT_LIST_DIR}/third_party/fmt
|
|
${CMAKE_CURRENT_LIST_DIR}/third_party/fmt/include
|
|
)
|
|
|
|
add_library(sample SHARED
|
|
app/src/main/cpp/main.cpp
|
|
app/src/main/cpp/AndroidOut.cpp
|
|
vulkan/AppBase.h
|
|
vulkan/AppBase.cpp
|
|
vulkan/Application.h
|
|
vulkan/Application.cpp
|
|
vulkan/FaceApp.h
|
|
vulkan/FaceApp.cpp
|
|
vulkan/lodepng.cpp
|
|
)
|
|
|
|
find_package(game-activity REQUIRED CONFIG)
|
|
|
|
|
|
set(CMAKE_SHARED_LINKER_FLAGS
|
|
"${CMAKE_SHARED_LINKER_FLAGS} -u Java_com_google_androidgamesdk_GameActivity_initializeNativeCode")
|
|
|
|
find_package(Vulkan REQUIRED)
|
|
|
|
target_link_libraries(sample
|
|
game-activity::game-activity_static
|
|
Vulkan::Vulkan
|
|
android
|
|
log)
|
|
|
|
endif()
|
|
|
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR WIN32)
|
|
message(STATUS "Building for Windows")
|
|
add_compile_options(/utf-8)
|
|
add_compile_definitions(_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING)
|
|
|
|
include_directories(
|
|
${CMAKE_CURRENT_LIST_DIR}/vulkan
|
|
${CMAKE_CURRENT_LIST_DIR}/vulkan/framework
|
|
${CMAKE_CURRENT_LIST_DIR}/vulkan/components
|
|
${CMAKE_CURRENT_LIST_DIR}/vulkan/components/core
|
|
${CMAKE_CURRENT_LIST_DIR}/vulkan/components/core/include
|
|
${CMAKE_CURRENT_LIST_DIR}/third_party
|
|
${CMAKE_CURRENT_LIST_DIR}/third_party/vma
|
|
${CMAKE_CURRENT_LIST_DIR}/third_party/vma/include
|
|
${CMAKE_CURRENT_LIST_DIR}/third_party/fmt
|
|
${CMAKE_CURRENT_LIST_DIR}/third_party/fmt/include
|
|
${CMAKE_CURRENT_LIST_DIR}/third_party/volk
|
|
"third_party/glfw-3.4/output/include"
|
|
"C:/VulkanSDK/1.4.321.1/Include"
|
|
)
|
|
|
|
|
|
link_libraries(
|
|
# "${CMAKE_CURRENT_LIST_DIR}/third_party/glfw-3.4/output/lib/glfw3.lib"
|
|
"${CMAKE_CURRENT_LIST_DIR}/third_party/glfw-3.4/output/glfw3.lib"
|
|
"C:/VulkanSDK/1.4.321.1/Lib/vulkan-1.lib"
|
|
)
|
|
|
|
# 将源代码添加到此项目的可执行文件。
|
|
add_executable (sample
|
|
vulkan/AppBase.h
|
|
vulkan/AppBase.cpp
|
|
vulkan/Application.h
|
|
vulkan/Application.cpp
|
|
vulkan/FaceApp.h
|
|
vulkan/FaceApp.cpp
|
|
vulkan/main.cpp
|
|
vulkan/lodepng.cpp
|
|
)
|
|
endif()
|
|
|
|
|
|
target_compile_definitions(sample PRIVATE VK_NO_PROTOTYPES)
|
|
target_compile_definitions(sample PRIVATE GLM_ENABLE_EXPERIMENTAL)
|