Crossplatform build fixes
This commit is contained in:
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
||||
|
||||
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
|
||||
|
||||
if(NOT WIN32)
|
||||
if(LINUX)
|
||||
find_package(ECM REQUIRED NO_MODULE)
|
||||
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
|
||||
endif()
|
||||
@@ -26,18 +26,38 @@ file(GLOB_RECURSE sources CONFIGURE_DEPENDS "openVulkanoCpp/*.cpp")
|
||||
target_sources(openVulkanoCpp PRIVATE ${sources})
|
||||
target_include_directories(openVulkanoCpp PUBLIC openVulkanoCpp)
|
||||
|
||||
# Setup IOS
|
||||
if(IOS)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "14.1") # The used ARKit features are only available starting with iOS 14
|
||||
|
||||
target_link_libraries(openVulkanoCpp
|
||||
PUBLIC "-framework CoreFoundation"
|
||||
PRIVATE "-framework Foundation"
|
||||
PRIVATE "-framework CoreImage"
|
||||
PRIVATE "-framework CoreVideo"
|
||||
PRIVATE "-framework Metal"
|
||||
PRIVATE "-framework MetalPerformanceShaders"
|
||||
PUBLIC "-framework ARKit"
|
||||
PRIVATE "-lstdc++"
|
||||
PRIVATE c++
|
||||
PRIVATE c
|
||||
)
|
||||
endif ()
|
||||
|
||||
#Setup Vulkan
|
||||
find_package(Vulkan REQUIRED)
|
||||
set(Vulkan_LIBRARIES Vulkan::Vulkan)
|
||||
target_link_libraries(openVulkanoCpp PRIVATE ${Vulkan_LIBRARIES})
|
||||
target_include_directories(openVulkanoCpp PUBLIC ${Vulkan_INCLUDE_DIR})
|
||||
if (NOT IOS)
|
||||
find_package(Vulkan REQUIRED)
|
||||
set(Vulkan_LIBRARIES Vulkan::Vulkan)
|
||||
target_link_libraries(openVulkanoCpp PRIVATE ${Vulkan_LIBRARIES})
|
||||
target_include_directories(openVulkanoCpp PUBLIC ${Vulkan_INCLUDE_DIR})
|
||||
else ()
|
||||
endif ()
|
||||
|
||||
if (ANDROID)
|
||||
add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR)
|
||||
elseif (WIN32)
|
||||
add_definitions(-DVK_USE_PLATFORM_WIN32_KHR)
|
||||
else()
|
||||
elseif (LINUX)
|
||||
add_definitions(-DVK_USE_PLATFORM_XCB_KHR)
|
||||
find_package(XCB REQUIRED)
|
||||
link_libraries(${XCB_LIBRARIES})
|
||||
@@ -47,12 +67,12 @@ set_property(TARGET openVulkanoCpp PROPERTY CXX_STANDARD 17)
|
||||
target_compile_options(openVulkanoCpp PRIVATE -Wall)
|
||||
|
||||
if (NOT ANDROID AND NOT IOS)
|
||||
target_link_libraries(openVulkanoCpp PRIVATE glfw)
|
||||
Find_Package(OpenCV)
|
||||
target_include_directories(openVulkanoCpp PRIVATE ${OpenCV_INCLUDE_DIRS})
|
||||
target_link_libraries(openVulkanoCpp PRIVATE glfw ${OpenCV_LIBS} sago::platform_folders)
|
||||
endif()
|
||||
|
||||
Find_Package(OpenCV)
|
||||
target_include_directories(openVulkanoCpp PRIVATE ${OpenCV_INCLUDE_DIRS})
|
||||
target_link_libraries(openVulkanoCpp PRIVATE magic_enum yaml-cpp spdlog glm assimp pugixml ${OpenCV_LIBS} sago::platform_folders archive_static)
|
||||
target_link_libraries(openVulkanoCpp PRIVATE magic_enum yaml-cpp spdlog glm assimp pugixml archive_static)
|
||||
|
||||
add_compile_definitions(GLM_FORCE_INTRINSICS)
|
||||
|
||||
|
||||
@@ -247,7 +247,7 @@ namespace openVulkanoCpp::GLFW
|
||||
{
|
||||
VkSurfaceKHR rawSurface;
|
||||
const auto result = static_cast<vk::Result>(glfwCreateWindowSurface(static_cast<VkInstance>(instance), window, reinterpret_cast<const VkAllocationCallbacks*>(pAllocator), &rawSurface));
|
||||
return std::move(rawSurface);//createResultValue(result, rawSurface, "vk::CommandBuffer::begin");
|
||||
return rawSurface;//createResultValue(result, rawSurface, "vk::CommandBuffer::begin");
|
||||
}
|
||||
|
||||
std::vector<std::string> WindowGLFW::GetRequiredInstanceExtensions()
|
||||
|
||||
Reference in New Issue
Block a user