Use FindVulkan CMake module if version >= 3.7.0 (refs #225)
This commit is contained in:
parent
9462a24421
commit
7cd95fc8c8
1 changed files with 28 additions and 8 deletions
|
|
@ -14,25 +14,45 @@ include_directories(base)
|
||||||
|
|
||||||
OPTION(USE_D2D_WSI "Build the project using Direct to Display swapchain" OFF)
|
OPTION(USE_D2D_WSI "Build the project using Direct to Display swapchain" OFF)
|
||||||
|
|
||||||
|
# Use FindVulkan module added with CMAKE 3.7
|
||||||
|
if (NOT CMAKE_VERSION VERSION_LESS 3.7.0)
|
||||||
|
message(STATUS "Using module to find Vulkan")
|
||||||
|
find_package(Vulkan REQUIRED)
|
||||||
|
endif()
|
||||||
|
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
find_library(VULKAN_LIB NAMES vulkan-1 vulkan PATHS ${CMAKE_SOURCE_DIR}/libs/vulkan)
|
IF (NOT Vulkan_FOUND)
|
||||||
|
find_library(Vulkan_LIBRARY NAMES vulkan-1 vulkan PATHS ${CMAKE_SOURCE_DIR}/libs/vulkan)
|
||||||
|
IF (Vulkan_LIBRARY)
|
||||||
|
set(Vulkan_FOUND ON)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
find_library(ASSIMP_LIBRARIES NAMES assimp libassimp.dll.a PATHS ${CMAKE_SOURCE_DIR}/libs/assimp)
|
find_library(ASSIMP_LIBRARIES NAMES assimp libassimp.dll.a PATHS ${CMAKE_SOURCE_DIR}/libs/assimp)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_WIN32_KHR")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_WIN32_KHR")
|
||||||
ELSE(WIN32)
|
ELSE(WIN32)
|
||||||
find_library(VULKAN_LIB NAMES vulkan HINTS "$ENV{VULKAN_SDK}/lib" "${CMAKE_SOURCE_DIR}/libs/vulkan" REQUIRED)
|
IF (NOT Vulkan_FOUND)
|
||||||
|
find_library(Vulkan_LIBRARY NAMES vulkan HINTS "$ENV{VULKAN_SDK}/lib" "${CMAKE_SOURCE_DIR}/libs/vulkan" REQUIRED)
|
||||||
|
IF (Vulkan_LIBRARY)
|
||||||
|
set(Vulkan_FOUND ON)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
find_package(ASSIMP REQUIRED)
|
find_package(ASSIMP REQUIRED)
|
||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
IF(USE_D2D_WSI)
|
IF(USE_D2D_WSI)
|
||||||
MESSAGE("Using direct to display extension...")
|
MESSAGE("Using direct to display extension...")
|
||||||
add_definitions(-D_DIRECT2DISPLAY)
|
add_definitions(-D_DIRECT2DISPLAY)
|
||||||
ELSE(USE_D2D_WSI)
|
ELSE(USE_D2D_WSI)
|
||||||
find_package(XCB REQUIRED)
|
find_package(XCB REQUIRED)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_XCB_KHR")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_XCB_KHR")
|
||||||
ENDIF(USE_D2D_WSI)
|
ENDIF(USE_D2D_WSI)
|
||||||
# Todo : android?
|
# Todo : android?
|
||||||
ENDIF(WIN32)
|
ENDIF(WIN32)
|
||||||
|
|
||||||
message(STATUS ${VULKAN_LIB})
|
IF (NOT Vulkan_FOUND)
|
||||||
|
message(FATAL_ERROR "Could not find Vulkan library!")
|
||||||
|
ELSE()
|
||||||
|
message(STATUS ${Vulkan_LIBRARY})
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
# Set preprocessor defines
|
# Set preprocessor defines
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNOMINMAX -D_USE_MATH_DEFINES")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNOMINMAX -D_USE_MATH_DEFINES")
|
||||||
|
|
@ -47,10 +67,10 @@ function(buildExample EXAMPLE_NAME)
|
||||||
file(GLOB SOURCE *.cpp base/*.cpp ${EXAMPLE_NAME}/*.cpp)
|
file(GLOB SOURCE *.cpp base/*.cpp ${EXAMPLE_NAME}/*.cpp)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
add_executable(${EXAMPLE_NAME} WIN32 ${EXAMPLE_NAME}/${EXAMPLE_NAME}.cpp ${SOURCE})
|
add_executable(${EXAMPLE_NAME} WIN32 ${EXAMPLE_NAME}/${EXAMPLE_NAME}.cpp ${SOURCE})
|
||||||
target_link_libraries(${EXAMPLE_NAME} ${VULKAN_LIB} ${ASSIMP_LIBRARIES} ${WINLIBS})
|
target_link_libraries(${EXAMPLE_NAME} ${Vulkan_LIBRARY} ${ASSIMP_LIBRARIES} ${WINLIBS})
|
||||||
else(WIN32)
|
else(WIN32)
|
||||||
add_executable(${EXAMPLE_NAME} ${EXAMPLE_NAME}/${EXAMPLE_NAME}.cpp ${SOURCE})
|
add_executable(${EXAMPLE_NAME} ${EXAMPLE_NAME}/${EXAMPLE_NAME}.cpp ${SOURCE})
|
||||||
target_link_libraries(${EXAMPLE_NAME} ${VULKAN_LIB} ${ASSIMP_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${EXAMPLE_NAME} ${Vulkan_LIBRARY} ${ASSIMP_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
endfunction(buildExample)
|
endfunction(buildExample)
|
||||||
|
|
||||||
|
|
@ -69,7 +89,7 @@ ENDIF(MSVC)
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
# Nothing here (yet)
|
# Nothing here (yet)
|
||||||
ELSE(WIN32)
|
ELSE(WIN32)
|
||||||
link_libraries(${XCB_LIBRARIES} ${VULKAN_LIB})
|
link_libraries(${XCB_LIBRARIES} ${Vulkan_LIBRARY})
|
||||||
ENDIF(WIN32)
|
ENDIF(WIN32)
|
||||||
|
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin/")
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin/")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue