From a754cb1e74a9727380e00869b36fef49ca8e9d2b Mon Sep 17 00:00:00 2001 From: j-p Date: Thu, 23 Jan 2020 07:28:09 +0100 Subject: [PATCH] Appveyor (#3) MSVC compilation ok. --- CMakeLists.txt | 13 ++++++++++--- appveyor.yml | 24 ++++++++++++++++++++++++ src/vkh_app.c | 3 ++- src/vkh_presenter.c | 17 ++++++++++------- src/vkhelpers.c | 3 ++- 5 files changed, 48 insertions(+), 12 deletions(-) create mode 100644 appveyor.yml diff --git a/CMakeLists.txt b/CMakeLists.txt index 07ef231..c0880b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,16 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 3.9) +CMAKE_MINIMUM_REQUIRED(VERSION 3.7) PROJECT(vkh VERSION 0.1.0 DESCRIPTION "Vulkan helpers library") -SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") -SET(CMAKE_CXX_FLAGS "-Wall -std=c++11") +#SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") + +IF (UNIX) + SET(CMAKE_CXX_FLAGS "-Wall -Wno-extra") +ELSEIF(MSVC) + SET(CMAKE_CXX_FLAGS "-W4") +ENDIF() + + SET(CMAKE_EXE_LINKER_FLAGS "-lm") IF(NOT CMAKE_BUILD_TYPE) diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000..9890041 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,24 @@ +version: 0.1.{build} + +environment: + VULKAN_SDK: C:/VulkanSDK/1.1.130.0 + APPVEYOR_SAVE_CACHE_ON_ERROR: true + +install: + - if not exist VulkanSDK.exe curl -L --silent --show-error --output VulkanSDK.exe https://vulkan.lunarg.com/sdk/download/1.1.130.0/windows/VulkanSDK-1.1.130.0-Installer.exe?Human=true && VulkanSDK.exe /S + - vcpkg install glfw3 +cache: + - VulkanSDK.exe + - c:\tools\vcpkg\installed\ + - c:\VulkanSDK\ + +before_build: + - git submodule update --init --recursive + - mkdir build + - cd build + - cmake -G "Visual Studio 14" -DCMAKE_TOOLCHAIN_FILE=c:/tools/vcpkg/scripts/buildsystems/vcpkg.cmake .. + - ls + +build_script: + - msbuild vkh.sln /p:Configuration=Debug /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" + diff --git a/src/vkh_app.c b/src/vkh_app.c index cc387ab..013df2c 100644 --- a/src/vkh_app.c +++ b/src/vkh_app.c @@ -105,13 +105,14 @@ VkInstance vkh_app_get_inst (VkhApp app) { VkhPhyInfo* vkh_app_get_phyinfos (VkhApp app, uint32_t* count, VkSurfaceKHR surface) { VK_CHECK_RESULT(vkEnumeratePhysicalDevices (app->inst, count, NULL)); - VkPhysicalDevice phyDevices[(*count)]; + VkPhysicalDevice* phyDevices = (VkPhysicalDevice*)malloc((*count) * sizeof(VkPhysicalDevice)); VK_CHECK_RESULT(vkEnumeratePhysicalDevices (app->inst, count, phyDevices)); VkhPhyInfo* infos = (VkhPhyInfo*)malloc((*count) * sizeof(VkhPhyInfo)); for (uint32_t i=0; i<(*count); i++) infos[i] = vkh_phyinfo_create (phyDevices[i], surface); + free (phyDevices); return infos; } diff --git a/src/vkh_presenter.c b/src/vkh_presenter.c index 83cdc74..f2f2126 100644 --- a/src/vkh_presenter.c +++ b/src/vkh_presenter.c @@ -150,10 +150,10 @@ void _init_phy_surface(VkhPresenter r, VkFormat preferedFormat, VkPresentModeKHR uint32_t count; VK_CHECK_RESULT(vkGetPhysicalDeviceSurfaceFormatsKHR (r->dev->phy, r->surface, &count, NULL)); assert (count>0); - VkSurfaceFormatKHR formats[count]; + VkSurfaceFormatKHR* formats = (VkSurfaceFormatKHR*)malloc(count * sizeof(VkSurfaceFormatKHR)); VK_CHECK_RESULT(vkGetPhysicalDeviceSurfaceFormatsKHR (r->dev->phy, r->surface, &count, formats)); - for (uint i=0; iformat = formats[i].format; r->colorSpace = formats[i].colorSpace; @@ -164,16 +164,18 @@ void _init_phy_surface(VkhPresenter r, VkFormat preferedFormat, VkPresentModeKHR VK_CHECK_RESULT(vkGetPhysicalDeviceSurfacePresentModesKHR(r->dev->phy, r->surface, &count, NULL)); assert (count>0); - VkPresentModeKHR presentModes[count]; + VkPresentModeKHR* presentModes = (VkPresentModeKHR*)malloc(count * sizeof(VkPresentModeKHR)); VK_CHECK_RESULT(vkGetPhysicalDeviceSurfacePresentModesKHR(r->dev->phy, r->surface, &count, presentModes)); r->presentMode = -1; - for (uint i=0; ipresentMode = presentModes[i]; break; } } assert (r->presentMode >= 0); + free(formats); + free(presentModes); } void vkh_presenter_create_swapchain (VkhPresenter r){ @@ -226,13 +228,13 @@ void vkh_presenter_create_swapchain (VkhPresenter r){ VK_CHECK_RESULT(vkGetSwapchainImagesKHR(r->dev->dev, r->swapChain, &r->imgCount, NULL)); assert (r->imgCount>0); - VkImage images[r->imgCount]; - VK_CHECK_RESULT(vkGetSwapchainImagesKHR(r->dev->dev, r->swapChain, &r->imgCount,images)); + VkImage* images = (VkImage*)malloc(r->imgCount * sizeof(VkImage)); + VK_CHECK_RESULT(vkGetSwapchainImagesKHR(r->dev->dev, r->swapChain, &r->imgCount, images)); r->ScBuffers = (VkhImage*) malloc (r->imgCount * sizeof(VkhImage)); r->cmdBuffs = (VkCommandBuffer*)malloc (r->imgCount * sizeof(VkCommandBuffer)); - for (int i=0; iimgCount; i++) { + for (uint32_t i=0; iimgCount; i++) { VkhImage sci = vkh_image_import(r->dev, images[i], r->format, r->width, r->height); vkh_image_create_view(sci, VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_ASPECT_COLOR_BIT); @@ -241,6 +243,7 @@ void vkh_presenter_create_swapchain (VkhPresenter r){ r->cmdBuffs [i] = vkh_cmd_buff_create(r->dev, r->cmdPool,VK_COMMAND_BUFFER_LEVEL_PRIMARY); } r->currentScBufferIndex = 0; + free (images); } void _swapchain_destroy (VkhPresenter r){ for (uint32_t i = 0; i < r->imgCount; i++) diff --git a/src/vkhelpers.c b/src/vkhelpers.c index b6490b5..9557bda 100644 --- a/src/vkhelpers.c +++ b/src/vkhelpers.c @@ -277,7 +277,7 @@ void dumpLayerExts () { assert (vkEnumerateInstanceLayerProperties(&instance_layer_count, NULL)==VK_SUCCESS); if (instance_layer_count == 0) return; - VkLayerProperties vk_props[instance_layer_count]; + VkLayerProperties* vk_props = (VkLayerProperties*)malloc(instance_layer_count * sizeof(VkLayerProperties)); assert (vkEnumerateInstanceLayerProperties(&instance_layer_count, vk_props)==VK_SUCCESS); for (uint32_t i = 0; i < instance_layer_count; i++) { @@ -286,4 +286,5 @@ void dumpLayerExts () { if (res) return res; info.instance_layer_properties.push_back(layer_props);*/ } + free (vk_props); } -- 2.47.3