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")
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 ()
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)