From 53ac380440abba0b80344882d9d5d46327669ea9 Mon Sep 17 00:00:00 2001 From: Karl Schultz Date: Tue, 15 May 2018 10:47:42 -0600 Subject: [PATCH] build: Enable install target on Linux Now installs vulkaninfo and mock ICD. Not yet installing cube(pp) pending decision on issue #5. --- CMakeLists.txt | 5 +---- icd/CMakeLists.txt | 14 +++++++++++++- vulkaninfo/CMakeLists.txt | 10 +--------- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f6f2ae..240ec70 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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" diff --git a/icd/CMakeLists.txt b/icd/CMakeLists.txt index 7aec423..468cf56 100644 --- a/icd/CMakeLists.txt +++ b/icd/CMakeLists.txt @@ -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() diff --git a/vulkaninfo/CMakeLists.txt b/vulkaninfo/CMakeLists.txt index b13c153..ed7dcd9 100644 --- a/vulkaninfo/CMakeLists.txt +++ b/vulkaninfo/CMakeLists.txt @@ -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() -- 2.7.4