Files
face_sdk/CMakeLists.txt
T

115 lines
4.0 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(MSVC)
add_compile_options(/Zc:__cplusplus)
endif()
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
third_party/vma/src/VmaUsage.h
third_party/vma/src/VmaUsage.cpp
third_party/fmt/src/format.cc
vulkan/framework/common/error.cpp
vulkan/framework/common/strings.cpp
vulkan/framework/core/allocated.cpp
)
endif()
target_compile_definitions(sample PRIVATE VK_NO_PROTOTYPES)
target_compile_definitions(sample PRIVATE GLM_ENABLE_EXPERIMENTAL)
target_compile_definitions(sample PRIVATE VULKAN_HPP_NO_STRUCT_CONSTRUCTORS)