1cmake_minimum_required(VERSION 2.8.11) 2 3# On Windows, we must pair Debug and Release appropriately 4if (WIN32) 5 # For Windows, since 32-bit and 64-bit items can co-exist, we build each in its own build directory. 6 # 32-bit target data goes in build32, and 64-bit target data goes into build. So, include/link the 7 # appropriate data at build time. 8 if (CMAKE_CL_64) 9 set (BUILDTGT_DIR build) 10 else () 11 set (BUILDTGT_DIR build32) 12 endif() 13else() 14 include (FindPkgConfig) 15 find_package(XCB REQUIRED) 16endif() 17 18set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") 19 20if(WIN32) 21 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES") 22 23 # If MSVC, disable some signed/unsigned mismatch warnings. 24 if (MSVC) 25 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4267") 26 endif() 27 28else() 29 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-sign-compare -std=c++11") 30endif() 31 32set (LIBGLM_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/libs) 33 34set(COMMON_CPP 35 vkrenderframework.cpp 36 vktestbinding.cpp 37 vktestframework.cpp 38 test_environment.cpp 39 ) 40 41include_directories( 42 "${PROJECT_SOURCE_DIR}/tests/gtest-1.7.0/include" 43 "${PROJECT_SOURCE_DIR}/icd/common" 44 "${PROJECT_SOURCE_DIR}/layers" 45 ${GLSLANG_SPIRV_INCLUDE_DIR} 46 ${LIBGLM_INCLUDE_DIR} 47 ) 48 49if (NOT WIN32) 50 # extra setup for out-of-tree builds 51 if (NOT (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)) 52 add_custom_target(binary-dir-symlinks ALL 53 COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/run_all_tests.sh 54 COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/vkvalidatelayerdoc.sh 55 VERBATIM 56 ) 57 endif() 58else() 59 if (NOT (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)) 60 FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/_run_all_tests.ps1 RUN_ALL) 61 add_custom_target(binary-dir-symlinks ALL 62 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${RUN_ALL} _run_all_tests.ps1 63 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${RUN_ALL} _vkvalidatelayerdoc.ps1 64 VERBATIM 65 ) 66 endif() 67endif() 68 69if(WIN32) 70 set (LIBVK "vulkan-${MAJOR}") 71elseif(UNIX) 72 set (LIBVK "vulkan") 73else() 74endif() 75 76add_executable(vk_layer_validation_tests layer_validation_tests.cpp ${COMMON_CPP}) 77set_target_properties(vk_layer_validation_tests 78 PROPERTIES 79 COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1") 80target_link_libraries(vk_layer_validation_tests ${LIBVK} gtest gtest_main layer_utils ${GLSLANG_LIBRARIES}) 81 82add_subdirectory(gtest-1.7.0) 83