repo: Make tests not try to build without gtest
authorLenny Komow <lenny@lunarg.com>
Wed, 6 Jun 2018 21:40:13 +0000 (15:40 -0600)
committerLenny Komow <lenny@lunarg.com>
Wed, 6 Jun 2018 21:40:13 +0000 (15:40 -0600)
Change-Id: Idf3ed7bca713cb7ec1964513ac072344feaf17e6

external/CMakeLists.txt
tests/CMakeLists.txt

index 59af5d95324ad2f738ccd3286df6f90c27f0458e..64f9be6112d04a19c4e74389cd1ce98a2932599f 100644 (file)
@@ -12,5 +12,5 @@ elseif(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/googletest")
     # EXCLUDE_FROM_ALL keeps the install target from installing GTEST files.
     add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/googletest" EXCLUDE_FROM_ALL)
 else()
-    message(STATUS "Google Test was not found - test based on that will not build")
+    message(STATUS "Google Test was not found - tests based on that will not build")
 endif()
index 9e12943d9f24c77491eb6662a9bccb73c1173dbf..ec590895c882ecfe5f114f0cc617510cbcf3f777 100644 (file)
 cmake_minimum_required(VERSION 2.8.11)
 
-if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
-    add_definitions(-DVK_USE_PLATFORM_WIN32_KHR -DWIN32_LEAN_AND_MEAN)
-    # Workaround for TR1 deprecation in Visual Studio 15.5 until Google Test is updated
-    add_definitions(-D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
-    set(DisplayServer Win32)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "Android")
-    add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-    if (BUILD_WSI_XCB_SUPPORT)
-        add_definitions(-DVK_USE_PLATFORM_XCB_KHR)
-    endif()
-
-    if (BUILD_WSI_XLIB_SUPPORT)
-       add_definitions(-DVK_USE_PLATFORM_XLIB_KHR)
-    endif()
-
-    if (BUILD_WSI_WAYLAND_SUPPORT)
-       add_definitions(-DVK_USE_PLATFORM_WAYLAND_KHR)
+if(TARGET gtest_main)
+    if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+        add_definitions(-DVK_USE_PLATFORM_WIN32_KHR -DWIN32_LEAN_AND_MEAN)
+        # Workaround for TR1 deprecation in Visual Studio 15.5 until Google Test is updated
+        add_definitions(-D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
+        set(DisplayServer Win32)
+    elseif(CMAKE_SYSTEM_NAME STREQUAL "Android")
+        add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR)
+    elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+        if (BUILD_WSI_XCB_SUPPORT)
+            add_definitions(-DVK_USE_PLATFORM_XCB_KHR)
+        endif()
+
+        if (BUILD_WSI_XLIB_SUPPORT)
+            add_definitions(-DVK_USE_PLATFORM_XLIB_KHR)
+        endif()
+
+        if (BUILD_WSI_WAYLAND_SUPPORT)
+            add_definitions(-DVK_USE_PLATFORM_WAYLAND_KHR)
+        endif()
+
+        if (BUILD_WSI_MIR_SUPPORT)
+            add_definitions(-DVK_USE_PLATFORM_MIR_KHR)
+            include_directories(${MIR_INCLUDE_DIR})
+        endif()
+    elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+        add_definitions(-DVK_USE_PLATFORM_MACOS_MVK)
+    else()
+        message(FATAL_ERROR "Unsupported Platform!")
     endif()
 
-    if (BUILD_WSI_MIR_SUPPORT)
-        add_definitions(-DVK_USE_PLATFORM_MIR_KHR)
-        include_directories(${MIR_INCLUDE_DIR})
+    # On Windows, we must pair Debug and Release appropriately
+    if (WIN32)
+        # For Windows, since 32-bit and 64-bit items can co-exist, we build each in its own build directory.
+        # 32-bit target data goes in build32, and 64-bit target data goes into build.  So, include/link the
+        # appropriate data at build time.
+        if (CMAKE_CL_64)
+            set (BUILDTGT_DIR build)
+        else ()
+            set (BUILDTGT_DIR build32)
+        endif()
     endif()
-elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
-    add_definitions(-DVK_USE_PLATFORM_MACOS_MVK)
-else()
-    message(FATAL_ERROR "Unsupported Platform!")
-endif()
 
-# On Windows, we must pair Debug and Release appropriately
-if (WIN32)
-   # For Windows, since 32-bit and 64-bit items can co-exist, we build each in its own build directory.
-   # 32-bit target data goes in build32, and 64-bit target data goes into build.  So, include/link the
-   # appropriate data at build time.
-   if (CMAKE_CL_64)
-      set (BUILDTGT_DIR build)
-   else ()
-      set (BUILDTGT_DIR build32)
-   endif()
-endif()
+    set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
 
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
+    if(WIN32)
+        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES")
 
-if(WIN32)
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES")
+        # If MSVC, disable some signed/unsigned mismatch warnings.
+        if (MSVC)
+            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4267")
+        endif()
 
-    # If MSVC, disable some signed/unsigned mismatch warnings.
-    if (MSVC)
-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4267")
+    else()
+        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
     endif()
 
-else()
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
-endif()
-
-set (LIBGLM_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/libs)
+    set (LIBGLM_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/libs)
 
-include_directories(
-    ${PROJECT_SOURCE_DIR}/external
-    ${GTEST_SOURCE_DIR}/googletest/include
-    ${CMAKE_CURRENT_BINARY_DIR}
-    ${CMAKE_BINARY_DIR}
-    ${PROJECT_BINARY_DIR}
+    include_directories(
+        ${PROJECT_SOURCE_DIR}/external
+        ${GTEST_SOURCE_DIR}/googletest/include
+        ${CMAKE_CURRENT_BINARY_DIR}
+        ${CMAKE_BINARY_DIR}
+        ${PROJECT_BINARY_DIR}
     )
 
-if (NOT WIN32)
-    # extra setup for out-of-tree builds
-    if (NOT (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR))
-        add_custom_target(binary-dir-symlinks ALL
-            COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/run_wrap_objects_tests.sh
-            COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/run_loader_tests.sh
-            COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/run_extra_loader_tests.sh
-            COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/run_all_tests.sh
-            VERBATIM
+    if (NOT WIN32)
+        # extra setup for out-of-tree builds
+        if (NOT (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR))
+            add_custom_target(binary-dir-symlinks ALL
+                COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/run_wrap_objects_tests.sh
+                COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/run_loader_tests.sh
+                COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/run_extra_loader_tests.sh
+                COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/run_all_tests.sh
+                VERBATIM
             )
-    endif()
-else()
-    if (NOT (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR))
-        FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/_run_all_tests.ps1 RUN_ALL)
-        add_custom_target(binary-dir-symlinks ALL
-            COMMAND ${CMAKE_COMMAND} -E copy_if_different ${RUN_ALL} run_all_tests.ps1
-            VERBATIM
+        endif()
+    else()
+        if (NOT (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR))
+            FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/_run_all_tests.ps1 RUN_ALL)
+            add_custom_target(binary-dir-symlinks ALL
+                COMMAND ${CMAKE_COMMAND} -E copy_if_different ${RUN_ALL} run_all_tests.ps1
+                VERBATIM
             )
-        set_target_properties(binary-dir-symlinks PROPERTIES FOLDER ${LVL_TARGET_FOLDER})
+            set_target_properties(binary-dir-symlinks PROPERTIES FOLDER ${LVL_TARGET_FOLDER})
+        endif()
     endif()
-endif()
 
-add_executable(vk_loader_validation_tests loader_validation_tests.cpp)
-set_target_properties(vk_loader_validation_tests
-   PROPERTIES
-   COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1")
-if(NOT WIN32)
+    add_executable(vk_loader_validation_tests loader_validation_tests.cpp)
     set_target_properties(vk_loader_validation_tests
         PROPERTIES
-        COMPILE_FLAGS "-Wno-sign-compare")
-endif()
+        COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1")
+    if(NOT WIN32)
+        set_target_properties(vk_loader_validation_tests
+            PROPERTIES
+            COMPILE_FLAGS "-Wno-sign-compare")
+    endif()
 
-if(TARGET vulkan)
-    set(LOADER_LIB vulkan)
-elseif(WIN32 AND NOT $ENV{VULKAN_SDK} EQUAL "")
-    if(CMAKE_SIZEOF_VOID_P EQUAL 8)
-        set(LOADER_LIB "$ENV{VULKAN_SDK}/Lib/vulkan-1.lib")
+    if(TARGET vulkan)
+        set(LOADER_LIB vulkan)
+    elseif(WIN32 AND NOT $ENV{VULKAN_SDK} EQUAL "")
+        if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+            set(LOADER_LIB "$ENV{VULKAN_SDK}/Lib/vulkan-1.lib")
+        else()
+            set(LOADER_LIB "$ENV{VULKAN_SDK}/Lib32/vulkan-1.lib")
+        endif()
     else()
-        set(LOADER_LIB "$ENV{VULKAN_SDK}/Lib32/vulkan-1.lib")
+        set(LOADER_LIB vulkan)
     endif()
-else()
-    set(LOADER_LIB vulkan)
-endif()
 
-target_link_libraries(vk_loader_validation_tests "${LOADER_LIB}" gtest gtest_main)
-if(BUILD_LOADER AND ENABLE_STATIC_LOADER)
-    set_target_properties(vk_loader_validation_tests PROPERTIES LINK_FLAGS "/ignore:4098")
-endif()
-if(WIN32)
-    file(COPY vk_loader_validation_tests.vcxproj.user DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
-endif()
+    target_link_libraries(vk_loader_validation_tests "${LOADER_LIB}" gtest gtest_main)
+    if(BUILD_LOADER AND ENABLE_STATIC_LOADER)
+        set_target_properties(vk_loader_validation_tests PROPERTIES LINK_FLAGS "/ignore:4098")
+    endif()
+    if(WIN32)
+        file(COPY vk_loader_validation_tests.vcxproj.user DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
+    endif()
 
-# Copy googletest (gtest) libs to test dir so the test executable can find them.
-if(WIN32)
-    if (CMAKE_GENERATOR MATCHES "^Visual Studio.*")
-        file(TO_NATIVE_PATH ${PROJECT_BINARY_DIR}/external/googletest/googletest/$<CONFIG>/gtest_main$<$<CONFIG:Debug>:d>.dll GTEST_COPY_SRC1)
-        file(TO_NATIVE_PATH ${PROJECT_BINARY_DIR}/external/googletest/googletest/$<CONFIG>/gtest$<$<CONFIG:Debug>:d>.dll GTEST_COPY_SRC2)
-        file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG> GTEST_COPY_DEST)
-    else()
-        file(TO_NATIVE_PATH ${PROJECT_BINARY_DIR}/external/googletest/googeltest/gtest_main.dll GTEST_COPY_SRC1)
-        file(TO_NATIVE_PATH ${PROJECT_BINARY_DIR}/external/googletest/googletest/gtest.dll GTEST_COPY_SRC2)
-        file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR} GTEST_COPY_DEST)
+    # Copy googletest (gtest) libs to test dir so the test executable can find them.
+    if(WIN32)
+        if (CMAKE_GENERATOR MATCHES "^Visual Studio.*")
+            file(TO_NATIVE_PATH ${PROJECT_BINARY_DIR}/external/googletest/googletest/$<CONFIG>/gtest_main$<$<CONFIG:Debug>:d>.dll GTEST_COPY_SRC1)
+            file(TO_NATIVE_PATH ${PROJECT_BINARY_DIR}/external/googletest/googletest/$<CONFIG>/gtest$<$<CONFIG:Debug>:d>.dll GTEST_COPY_SRC2)
+            file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG> GTEST_COPY_DEST)
+        else()
+            file(TO_NATIVE_PATH ${PROJECT_BINARY_DIR}/external/googletest/googeltest/gtest_main.dll GTEST_COPY_SRC1)
+            file(TO_NATIVE_PATH ${PROJECT_BINARY_DIR}/external/googletest/googletest/gtest.dll GTEST_COPY_SRC2)
+            file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR} GTEST_COPY_DEST)
+        endif()
+        add_custom_command(TARGET vk_loader_validation_tests POST_BUILD
+            COMMAND xcopy /Y /I ${GTEST_COPY_SRC1} ${GTEST_COPY_DEST}
+            COMMAND xcopy /Y /I ${GTEST_COPY_SRC2} ${GTEST_COPY_DEST}
+        )
     endif()
-    add_custom_command(TARGET vk_loader_validation_tests POST_BUILD
-        COMMAND xcopy /Y /I ${GTEST_COPY_SRC1} ${GTEST_COPY_DEST}
-        COMMAND xcopy /Y /I ${GTEST_COPY_SRC2} ${GTEST_COPY_DEST}
-    )
-endif()
 
-add_subdirectory(layers)
+    add_subdirectory(layers)
+endif()