aboutsummaryrefslogtreecommitdiffstatsci
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2020-05-30 17:36:05 +0200
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>2020-05-30 17:36:05 +0200
commit3d19dbe56f6e420e22d5d856c0312623739b6933 (patch)
tree7cb2fa2761cbb70cf1c90af88debb6ab0b5b4ece
parente2ec3438f45345e78fe8ac140482b33a3676eedf (diff)
prepare for optional vulkan memory allocator usage
-rw-r--r--CMakeLists.txt36
1 files changed, 25 insertions, 11 deletions
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)