From: Jean-Philippe Bruyère Date: Sat, 30 May 2020 15:36:05 +0000 (+0200) Subject: prepare for optional vulkan memory allocator usage X-Git-Url: https://git.osiis.dedyn.io/?a=commitdiff_plain;h=3d19dbe56f6e420e22d5d856c0312623739b6933;p=jp%2Fvkhelpers.git prepare for optional vulkan memory allocator usage --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 4c852dd..f00df40 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,13 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.7) -PROJECT(vkh VERSION 0.1.0 DESCRIPTION "Vulkan helpers library") +OPTION(VKH_ENABLE_VMA "enable Vulkan Memory Allocator" ON) +if (VKH_ENABLE_VMA) + SET(LANG "CXX") +ELSE() + SET(LANG "C") +ENDIF() + +PROJECT(vkh VERSION 0.1.0 DESCRIPTION "Vulkan helpers library" LANGUAGES ${LANG}) SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") @@ -8,29 +15,33 @@ IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE Release) ENDIF() -IF (UNIX) - SET(CMAKE_EXE_LINKER_FLAGS "-lm") -ENDIF() - MESSAGE(STATUS "${CMAKE_BUILD_TYPE} build.") + if (CMAKE_BUILD_TYPE STREQUAL "Debug") ADD_DEFINITIONS (-DDEBUG) OPTION(ENABLE_VALIDATION "enable vulkan validation layer" ON) IF (UNIX) - SET(CMAKE_CXX_FLAGS "-std=c99 -Wall -Wno-extra") - ELSEIF(MSVC) - SET(CMAKE_CXX_FLAGS "/W4 /wd4204 /wd4221 /wd4100") + SET(CMAKE_${LANG}_FLAGS "-std=c99 -Wall") + ELSEIF (MSVC) + SET(CMAKE_${LANG}_FLAGS "/W4 /wd4204 /wd4221 /wd4100") ENDIF() ELSE() UNSET(ENABLE_VALIDATION CACHE) IF (UNIX) - SET(CMAKE_CXX_FLAGS "-w") + SET(CMAKE_${LANG}_FLAGS "-w") ELSEIF(MSVC) - SET(CMAKE_CXX_FLAGS "/W0") + SET(CMAKE_${LANG}_FLAGS "/W0") ENDIF() ENDIF() +if (${LANG} EQUAL "C" AND MSVC) + SET(CMAKE_C_FLAGS "/TC ${CMAKE_C_FLAGS}") +endif () + +IF (VKH_ENABLE_VMA) + ADD_DEFINITIONS (-DUSE_VMA) +ENDIF () IF (ENABLE_VALIDATION) ADD_DEFINITIONS (-DVKH_USE_VALIDATION) ENDIF () @@ -54,7 +65,10 @@ FIND_PACKAGE(Vulkan REQUIRED) INCLUDE(GNUInstallDirs) -FILE(GLOB sources src/*.c*) +FILE(GLOB sources src/*.c) +if (VKH_ENABLE_VMA) + LIST(APPEND sources src/VmaUsage.cpp) +ENDIF() CONFIGURE_FILE(vkh.pc.in vkh.pc @ONLY) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/vkh.pc DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig)