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)
|
||||
|
||||
# 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)
|
||||
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)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_WIN32_KHR")
|
||||
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(Threads REQUIRED)
|
||||
IF(USE_D2D_WSI)
|
||||
MESSAGE("Using direct to display extension...")
|
||||
add_definitions(-D_DIRECT2DISPLAY)
|
||||
ELSE(USE_D2D_WSI)
|
||||
find_package(XCB REQUIRED)
|
||||
find_package(XCB REQUIRED)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_USE_PLATFORM_XCB_KHR")
|
||||
ENDIF(USE_D2D_WSI)
|
||||
# Todo : android?
|
||||
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(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)
|
||||
if(WIN32)
|
||||
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)
|
||||
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)
|
||||
endfunction(buildExample)
|
||||
|
||||
|
|
@ -69,7 +89,7 @@ ENDIF(MSVC)
|
|||
IF(WIN32)
|
||||
# Nothing here (yet)
|
||||
ELSE(WIN32)
|
||||
link_libraries(${XCB_LIBRARIES} ${VULKAN_LIB})
|
||||
link_libraries(${XCB_LIBRARIES} ${Vulkan_LIBRARY})
|
||||
ENDIF(WIN32)
|
||||
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin/")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue