build: Enable install target on Linux
authorKarl Schultz <karl@lunarg.com>
Tue, 15 May 2018 16:47:42 +0000 (10:47 -0600)
committerKarl Schultz <karl@lunarg.com>
Tue, 15 May 2018 16:47:42 +0000 (10:47 -0600)
Now installs vulkaninfo and mock ICD.
Not yet installing cube(pp) pending decision on issue #5.

CMakeLists.txt
icd/CMakeLists.txt
vulkaninfo/CMakeLists.txt

index 5f6f2ae..240ec70 100644 (file)
@@ -96,10 +96,7 @@ option(BUILD_VULKANINFO "Build vulkaninfo" ON)
 option(BUILD_ICD "Build icd" ON)
 
 if(UNIX)
-    if(INSTALL_LVL_FILES)
-        install(DIRECTORY "${PROJECT_SOURCE_DIR}/Vulkan-Headers/include/vulkan" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-    endif()
-
+    include(GNUInstallDirs)
     # uninstall target
     configure_file(
         "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
index 7aec423..468cf56 100644 (file)
@@ -146,8 +146,20 @@ else()
     #target_link_Libraries(VkICD_${target} VkICD_utils)
     add_dependencies(VkICD_${target} generate_helper_files generate_icd_files)
     set_target_properties(VkICD_${target} PROPERTIES LINK_FLAGS "-Wl,-export-dynamic,-Bsymbolic,--exclude-libs,ALL")
-    if(INSTALL_ICD_FILES)
+    if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
         install(TARGETS VkICD_${target} DESTINATION ${CMAKE_INSTALL_LIBDIR})
+        # Add targets for JSON file install on Linux.
+        # Need to remove the "./" from the library path before installing to system directories.
+        foreach (config_file ${ICD_JSON_FILES})
+            add_custom_target(${config_file}-staging-json ALL
+                COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/staging-json
+                COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/linux/${config_file}.json ${CMAKE_CURRENT_BINARY_DIR}/staging-json
+                COMMAND sed -i -e "/\"library_path\":/s$./libVkICD$libVkICD$" ${CMAKE_CURRENT_BINARY_DIR}/staging-json/${config_file}.json
+                VERBATIM
+                DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/linux/${config_file}.json
+                )
+            install(FILES ${CMAKE_CURRENT_BINARY_DIR}/staging-json/${config_file}.json DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/vulkan/explicit_layer.d)
+        endforeach(config_file)
     endif()
     endmacro()
 endif()
index b13c153..ed7dcd9 100644 (file)
@@ -53,12 +53,6 @@ if(APPLE)
     include(macOS/vulkaninfo/vulkaninfo.cmake)
 endif()
 
-if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
-    if(INSTALL_LVL_FILES)
-        install(TARGETS vulkaninfo DESTINATION ${CMAKE_INSTALL_BINDIR})
-    endif()
-endif()
-
 if(WIN32)
     target_compile_definitions(vulkaninfo PUBLIC -DVK_USE_PLATFORM_WIN32_KHR -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_WARNINGS)
 
@@ -74,8 +68,6 @@ if(WIN32)
 endif()
 
 if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
-    if(INSTALL_LVL_FILES)
-        install(TARGETS vulkaninfo DESTINATION ${CMAKE_INSTALL_BINDIR})
-    endif()
+    install(TARGETS vulkaninfo RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 endif()