build: Allow the use of a custom-named vulkan dll
authorLenny Komow <lenny@lunarg.com>
Mon, 7 Nov 2016 17:44:23 +0000 (10:44 -0700)
committerLenny Komow <lenny@lunarg.com>
Tue, 8 Nov 2016 16:07:28 +0000 (09:07 -0700)
Change-Id: Ibeae30386ca2a91717d6b4c3039ada884003a1a4

CMakeLists.txt
demos/CMakeLists.txt
libs/vkjson/CMakeLists.txt
loader/CMakeLists.txt
tests/CMakeLists.txt

index 4cd4d30..8176116 100644 (file)
@@ -5,9 +5,12 @@ cmake_minimum_required(VERSION 2.8.11)
 project (VULKAN)
 # set (CMAKE_VERBOSE_MAKEFILE 1)
 
+# The API_NAME allows renaming builds to avoid conflicts with installed SDKs
 # The MAJOR number of the version we're building, used in naming
-# vulkan-<major>.dll (and other files).
+# <api-name>-<major>.dll (and other files).
+set(API_NAME "Vulkan" CACHE STRING "API name to use when building")
 set(MAJOR "1")
+string(TOLOWER ${API_NAME} API_LOWERCASE)
 
 find_package(PythonInterp 3 REQUIRED)
 
index 0f8c6dc..29196f1 100644 (file)
@@ -19,9 +19,9 @@ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
 
 if(WIN32)
-  set (LIBRARIES "vulkan-${MAJOR}")
+  set (LIBRARIES "${API_LOWERCASE}-${MAJOR}")
 elseif(UNIX)
-  set (LIBRARIES "vulkan")
+  set (LIBRARIES "${API_LOWERCASE}")
 else()
 endif()
 
@@ -81,7 +81,7 @@ if(NOT WIN32)
     endif()
 
     include_directories ("${PROJECT_SOURCE_DIR}/icd/common")
-    link_libraries(vulkan m)
+    link_libraries(${API_LOWERCASE} m)
 endif()
 if(WIN32)
     include_directories (
@@ -92,8 +92,8 @@ if(WIN32)
     set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES")
 endif()
 
-add_executable(vulkaninfo vulkaninfo.c)
-target_link_libraries(vulkaninfo ${LIBRARIES})
+add_executable(${API_LOWERCASE}info vulkaninfo.c)
+target_link_libraries(${API_LOWERCASE}info ${LIBRARIES})
 
 if(NOT WIN32)
     if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR})
@@ -132,5 +132,5 @@ if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR})
 endif()
 
 if(UNIX)
-    install(TARGETS vulkaninfo DESTINATION ${CMAKE_INSTALL_BINDIR})
+    install(TARGETS ${API_LOWERCASE}info DESTINATION ${CMAKE_INSTALL_BINDIR})
 endif()
index 16b8e21..2e79d91 100644 (file)
@@ -40,8 +40,8 @@ endif()
 target_link_libraries(vkjson_unittest vkjson)
 
 if(WIN32)
-    target_link_libraries(vkjson_info vkjson vulkan-${MAJOR})
+    target_link_libraries(vkjson_info vkjson ${API_LOWERCASE}-${MAJOR})
 elseif(UNIX)
-    target_link_libraries(vkjson_info vkjson vulkan)
+    target_link_libraries(vkjson_info vkjson ${API_LOWERCASE})
 else()
 endif()
index c127a2a..81aef4c 100644 (file)
@@ -4,8 +4,8 @@ include_directories(
 )
 
 if (WIN32)
-    add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/vulkan-${MAJOR}.def
-        COMMAND ${PYTHON_CMD} ${PROJECT_SOURCE_DIR}/vk-generate.py ${DisplayServer} win-def-file vulkan-${MAJOR}.dll all > ${CMAKE_CURRENT_BINARY_DIR}/vulkan-${MAJOR}.def
+    add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${API_LOWERCASE}-${MAJOR}.def
+        COMMAND ${PYTHON_CMD} ${PROJECT_SOURCE_DIR}/vk-generate.py ${DisplayServer} win-def-file ${API_LOWERCASE}-${MAJOR}.dll all > ${CMAKE_CURRENT_BINARY_DIR}/${API_LOWERCASE}-${MAJOR}.def
         DEPENDS ${PROJECT_SOURCE_DIR}/vk-generate.py ${PROJECT_SOURCE_DIR}/vulkan.py)
 endif()
 
@@ -60,30 +60,30 @@ if (WIN32)
     target_compile_options(loader-norm PUBLIC "$<$<CONFIG:DEBUG>:${LOCAL_C_FLAGS_DBG}>")
     add_library(loader-opt OBJECT ${OPT_LOADER_SRCS})
     target_compile_options(loader-opt PUBLIC "$<$<CONFIG:DEBUG>:${LOCAL_C_FLAGS_REL}>")
-    add_library(vulkan-${MAJOR} SHARED $<TARGET_OBJECTS:loader-opt> $<TARGET_OBJECTS:loader-norm> ${CMAKE_CURRENT_BINARY_DIR}/vulkan-${MAJOR}.def ${CMAKE_CURRENT_SOURCE_DIR}/loader.rc)
+    add_library(${API_LOWERCASE}-${MAJOR} SHARED $<TARGET_OBJECTS:loader-opt> $<TARGET_OBJECTS:loader-norm> ${CMAKE_CURRENT_BINARY_DIR}/${API_LOWERCASE}-${MAJOR}.def ${CMAKE_CURRENT_SOURCE_DIR}/loader.rc)
     add_library(VKstatic.${MAJOR} STATIC $<TARGET_OBJECTS:loader-opt> $<TARGET_OBJECTS:loader-norm>)
     set_target_properties(VKstatic.${MAJOR} PROPERTIES OUTPUT_NAME VKstatic.${MAJOR})
-    target_link_libraries(vulkan-${MAJOR} shlwapi)
+    target_link_libraries(${API_LOWERCASE}-${MAJOR} shlwapi)
     target_link_libraries(VKstatic.${MAJOR} shlwapi)
     if (CMAKE_GENERATOR MATCHES "^Visual Studio.*")
-        file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>/vulkan-${MAJOR}.dll COPY_SRC_PATH)
+        file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>/${API_LOWERCASE}-${MAJOR}.dll COPY_SRC_PATH)
         file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/../demos/$<CONFIGURATION>/ COPY_DST_PATH)
         file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/../tests/$<CONFIGURATION>/ COPY_DST_TEST_PATH)
     else()
-        file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/vulkan-${MAJOR}.dll COPY_SRC_PATH)
+        file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/${API_LOWERCASE}-${MAJOR}.dll COPY_SRC_PATH)
         file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/../demos/ COPY_DST_PATH)
         file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/../tests/ COPY_DST_TEST_PATH)
     endif()
-    add_custom_command(TARGET vulkan-${MAJOR} POST_BUILD
+    add_custom_command(TARGET ${API_LOWERCASE}-${MAJOR} POST_BUILD
       COMMAND xcopy /Y /I ${COPY_SRC_PATH} ${COPY_DST_PATH})
-    add_custom_command(TARGET vulkan-${MAJOR} POST_BUILD
+    add_custom_command(TARGET ${API_LOWERCASE}-${MAJOR} POST_BUILD
       COMMAND xcopy /Y /I ${COPY_SRC_PATH} ${COPY_DST_TEST_PATH})
 
 else()
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpointer-arith")
 
-    add_library(vulkan SHARED ${LOADER_SRCS})
-    set_target_properties(vulkan PROPERTIES SOVERSION "1" VERSION "1.0.32")
-    target_link_libraries(vulkan -ldl -lpthread -lm)
-    install(TARGETS vulkan LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    add_library(${API_LOWERCASE} SHARED ${LOADER_SRCS})
+    set_target_properties(${API_LOWERCASE} PROPERTIES SOVERSION "1" VERSION "1.0.32")
+    target_link_libraries(${API_LOWERCASE} -ldl -lpthread -lm)
+    install(TARGETS ${API_LOWERCASE} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif()
index c314f81..17d0631 100644 (file)
@@ -73,9 +73,9 @@ else()
 endif()
 
 if(WIN32)
-   set (LIBVK "vulkan-${MAJOR}")
+   set (LIBVK "${API_LOWERCASE}-${MAJOR}")
 elseif(UNIX)
-   set (LIBVK "vulkan")
+   set (LIBVK "${API_LOWERCASE}")
 else()
 endif()