Refactor CMake WSI platform defines
authorCharles Giessen <charles@lunarg.com>
Wed, 3 Nov 2021 19:51:03 +0000 (13:51 -0600)
committerCharles Giessen <46324611+charles-lunarg@users.noreply.github.com>
Wed, 9 Mar 2022 22:06:30 +0000 (15:06 -0700)
Move the WSI macro defines into their own target such that it can be shared
with the loader and test code. Note that this commit is a part of a series
and not intended to work standalone.

CMakeLists.txt
loader/CMakeLists.txt
tests/framework/CMakeLists.txt

index 2fdbeb4..cdc870b 100644 (file)
@@ -241,6 +241,33 @@ endif()
 
 option(BUILD_LOADER "Build loader" ON)
 
+add_library(platform_wsi_defines INTERFACE)
+if(WIN32)
+    target_compile_definitions(platform_wsi_defines INTERFACE VK_USE_PLATFORM_WIN32_KHR)
+elseif(ANDROID)
+    target_compile_definitions(platform_wsi_defines INTERFACE VK_USE_PLATFORM_ANDROID_KHR)
+elseif(APPLE)
+    target_compile_definitions(platform_wsi_defines INTERFACE VK_USE_PLATFORM_MACOS_MVK VK_USE_PLATFORM_METAL_EXT)
+elseif(UNIX AND NOT APPLE) # i.e.: Linux
+    if(BUILD_WSI_XCB_SUPPORT)
+        target_compile_definitions(platform_wsi_defines INTERFACE VK_USE_PLATFORM_XCB_KHR)
+    endif()
+    if(BUILD_WSI_XLIB_SUPPORT)
+        target_compile_definitions(platform_wsi_defines INTERFACE VK_USE_PLATFORM_XLIB_KHR VK_USE_PLATFORM_XLIB_XRANDR_EXT)
+    endif()
+    if(BUILD_WSI_WAYLAND_SUPPORT)
+        target_compile_definitions(platform_wsi_defines INTERFACE VK_USE_PLATFORM_WAYLAND_KHR)
+    endif()
+    if(BUILD_WSI_DIRECTFB_SUPPORT)
+        target_compile_definitions(platform_wsi_defines INTERFACE VK_USE_PLATFORM_DIRECTFB_EXT)
+    endif()
+    if(BUILD_WSI_SCREEN_QNX_SUPPORT)
+        target_compile_definitions(platform_wsi_defines INTERFACE VK_USE_PLATFORM_SCREEN_QNX)
+    endif()
+else()
+    message(FATAL_ERROR "Unsupported Platform!")
+endif()
+
 if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
     set(COMMON_COMPILE_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers")
     set(COMMON_COMPILE_FLAGS "${COMMON_COMPILE_FLAGS} -fno-strict-aliasing -fno-builtin-memcmp")
index 49667e3..8721ab7 100644 (file)
@@ -42,32 +42,6 @@ if(WIN32)
         set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /guard:cf")
         set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /guard:cf")
     endif()
-elseif(ANDROID)
-    set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS VK_USE_PLATFORM_ANDROID_KHR)
-elseif(APPLE)
-    set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS VK_USE_PLATFORM_MACOS_MVK VK_USE_PLATFORM_METAL_EXT)
-elseif(UNIX AND NOT APPLE) # i.e.: Linux
-    if(BUILD_WSI_XCB_SUPPORT)
-    set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS VK_USE_PLATFORM_XCB_KHR)
-    endif()
-
-    if(BUILD_WSI_XLIB_SUPPORT)
-        set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS VK_USE_PLATFORM_XLIB_KHR VK_USE_PLATFORM_XLIB_XRANDR_EXT)
-    endif()
-
-    if(BUILD_WSI_WAYLAND_SUPPORT)
-        set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS VK_USE_PLATFORM_WAYLAND_KHR)
-    endif()
-
-    if(BUILD_WSI_DIRECTFB_SUPPORT)
-        set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS VK_USE_PLATFORM_DIRECTFB_EXT)
-    endif()
-
-    if(BUILD_WSI_SCREEN_QNX_SUPPORT)
-        set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS VK_USE_PLATFORM_SCREEN_QNX)
-    endif()
-else()
-    message(FATAL_ERROR "Unsupported Platform!")
 endif()
 
 # DEBUG enables runtime loader ICD verification
index aefbd3a..d2472b6 100644 (file)
 # ~~~
 
 add_library(testing_framework_util STATIC test_util.cpp test_util.h)
-target_link_libraries(testing_framework_util PUBLIC Vulkan::Headers)
+target_link_libraries(testing_framework_util PUBLIC Vulkan::Headers loader_common_options platform_wsi_defines)
 if(UNIX OR APPLE)
     target_link_libraries(testing_framework_util PUBLIC ${CMAKE_DL_LIBS})
 endif()
 
-if(WIN32)
-    target_compile_definitions(testing_framework_util PUBLIC VK_USE_PLATFORM_WIN32_KHR)
-elseif(ANDROID)
-    target_compile_definitions(testing_framework_util PUBLIC VK_USE_PLATFORM_ANDROID_KHR)
-elseif(APPLE)
-    target_compile_definitions(testing_framework_util PUBLIC VK_USE_PLATFORM_MACOS_MVK VK_USE_PLATFORM_METAL_EXT)
-elseif(UNIX AND NOT APPLE) # i.e.: Linux
-    if(BUILD_WSI_XCB_SUPPORT)
-        target_compile_definitions(testing_framework_util PUBLIC VK_USE_PLATFORM_XCB_KHR)
-    endif()
-    if(BUILD_WSI_XLIB_SUPPORT)
-        target_compile_definitions(testing_framework_util PUBLIC VK_USE_PLATFORM_XLIB_KHR VK_USE_PLATFORM_XLIB_XRANDR_EXT)
-    endif()
-    if(BUILD_WSI_WAYLAND_SUPPORT)
-        target_compile_definitions(testing_framework_util PUBLIC VK_USE_PLATFORM_WAYLAND_KHR)
-    endif()
-    if(BUILD_WSI_DIRECTFB_SUPPORT)
-        target_compile_definitions(testing_framework_util PUBLIC VK_USE_PLATFORM_DIRECTFB_EXT)
-    endif()
-    if(BUILD_WSI_SCREEN_QNX_SUPPORT)
-        target_compile_definitions(testing_framework_util PUBLIC VK_USE_PLATFORM_SCREEN_QNX)
-    endif()
-else()
-    message(FATAL_ERROR "Unsupported Platform!")
-endif()
-
 if(UNIX)
     target_compile_options(testing_framework_util PUBLIC -fPIC)
 endif()