From: Jean-Philippe Bruyère Date: Mon, 5 Dec 2022 02:04:41 +0000 (+0100) Subject: vma as static library, linkage in c X-Git-Url: https://git.osiis.dedyn.io/?a=commitdiff_plain;h=bede6aeb4264040784a422e64796ce21a012eab5;p=jp%2Fvkhelpers.git vma as static library, linkage in c --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 7fdf0e9..867d49d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ OPTION(VKH_USE_VMA "enable Vulkan Memory Allocator" ON) SET(LANG "C") SET(CMAKE_${LANG}_STANDARD 11) -PROJECT(vkh VERSION 0.1.0 DESCRIPTION "Vulkan helpers library")# LANGUAGES ${LANG}) +PROJECT(vkh VERSION 0.1.0 DESCRIPTION "Vulkan helpers library" LANGUAGES ${LANG}) SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") @@ -63,15 +63,18 @@ FUNCTION (setup_lib LibName) C_STANDARD 11 C_EXTENSIONS OFF PUBLIC_HEADER include/vkh.h + LINKER_LANGUAGE C ) TARGET_INCLUDE_DIRECTORIES("${LibName}" PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include - ${Vulkan_INCLUDE_DIRS} + ${Vulkan_INCLUDE_DIRS} ) TARGET_LINK_LIBRARIES("${LibName}" + PRIVATE + libVMA PUBLIC ${Vulkan_LIBRARIES} Threads::Threads @@ -88,18 +91,17 @@ GET_DIRECTORY_PROPERTY (vkh_has_root_project PARENT_DIRECTORY) if (VKH_USE_VMA) ADD_DEFINITIONS (-DVKH_USE_VMA) SET(VKH_USE_VMA ON PARENT_SCOPE) - ADD_LIBRARY(libVMA OBJECT src/VmaUsage.cpp) + ADD_LIBRARY(libVMA STATIC src/vma/VmaUsage.cpp) SET_TARGET_PROPERTIES( libVMA PROPERTIES POSITION_INDEPENDENT_CODE ON - LINKER_LANGUAGE CXX + LINKER_LANGUAGE C ) TARGET_INCLUDE_DIRECTORIES(libVMA PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src/vma ${Vulkan_INCLUDE_DIRS} ) - LIST (APPEND VKH_SRC $) ENDIF() IF (vkh_has_root_project) diff --git a/src/VmaUsage.cpp b/src/VmaUsage.cpp deleted file mode 100644 index 93fcb1b..0000000 --- a/src/VmaUsage.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* -In exactly one CPP file define macro VMA_IMPLEMENTATION and then include -vk_mem_alloc.h to include definitions of its internal implementation -*/ -#pragma warning(push) -#pragma warning(disable:4100;disable:4127;disable:4324) -#define VMA_IMPLEMENTATION -#include "vk_mem_alloc.h" -#pragma warning(pop) diff --git a/src/vma/VmaUsage.cpp b/src/vma/VmaUsage.cpp new file mode 100644 index 0000000..57179a2 --- /dev/null +++ b/src/vma/VmaUsage.cpp @@ -0,0 +1,9 @@ +/* +In exactly one CPP file define macro VMA_IMPLEMENTATION and then include +vk_mem_alloc.h to include definitions of its internal implementation +*/ +#pragma warning(push) +#pragma warning(disable:4100;disable:4127;disable:4324) +#define VMA_IMPLEMENTATION +#include "../vk_mem_alloc.h" +#pragma warning(pop)