From 2bc2a60b09b93804c4b6097b055a3b29f405d55d Mon Sep 17 00:00:00 2001 From: Egor Date: Mon, 21 Jan 2019 22:34:45 -0800 Subject: Fixed rpath installation issues on Linux --- BuildUtils.cmake | 2 +- CMakeLists.txt | 8 +++++++- External/vulkan/libs/libvulkan.so | 1 - External/vulkan/libs/libvulkan.so.1 | 1 - External/vulkan/libs/libvulkan.so.1.1.73 | Bin 425594 -> 0 bytes External/vulkan/libs/linux/libvulkan.so | 1 + External/vulkan/libs/linux/libvulkan.so.1 | 1 + External/vulkan/libs/linux/libvulkan.so.1.1.73 | Bin 0 -> 425594 bytes Graphics/GraphicsEngineVulkan/CMakeLists.txt | 9 ++++++++- appveyor.yml | 17 ++++++++--------- 10 files changed, 26 insertions(+), 14 deletions(-) delete mode 120000 External/vulkan/libs/libvulkan.so delete mode 120000 External/vulkan/libs/libvulkan.so.1 delete mode 100755 External/vulkan/libs/libvulkan.so.1.1.73 create mode 120000 External/vulkan/libs/linux/libvulkan.so create mode 120000 External/vulkan/libs/linux/libvulkan.so.1 create mode 100755 External/vulkan/libs/linux/libvulkan.so.1.1.73 diff --git a/BuildUtils.cmake b/BuildUtils.cmake index cea1acc7..8177d06f 100644 --- a/BuildUtils.cmake +++ b/BuildUtils.cmake @@ -209,7 +209,7 @@ function(install_core_lib _TARGET) elseif(TARGET_TYPE STREQUAL SHARED_LIBRARY) install(TARGETS ${_TARGET} ARCHIVE DESTINATION "${DILIGENT_CORE_INSTALL_DIR}/lib" - LIBRARY DESTINATION "${DILIGENT_CORE_INSTALL_DIR}/lib" + LIBRARY DESTINATION "${DILIGENT_CORE_INSTALL_DIR}/bin" RUNTIME DESTINATION "${DILIGENT_CORE_INSTALL_DIR}/bin" ) endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index 7c43195c..36e3c005 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -267,10 +267,16 @@ else() endif() if(NOT DILIGENT_CORE_INSTALL_DIR) - set(DILIGENT_CORE_INSTALL_DIR "DiligentCore") + set(DILIGENT_CORE_INSTALL_DIR "DiligentCore" CACHE INTERNAL "DiligentCore installation directory") endif() SET(DILIGENT_CORE_INSTALL_LIBS_LIST "" CACHE INTERNAL "Core libraries installation list") +# CMAKE_INSTALL_PREFIX must be absolute otherwise rpath won't work +if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_PREFIX}) + set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_PREFIX}" CACHE FILEPATH "Installation path" FORCE) + message("Transformed CMAKE_INSTALL_PREFIX into absolute path: " ${CMAKE_INSTALL_PREFIX}) +endif() + include(BuildUtils.cmake) add_subdirectory(Utilities) diff --git a/External/vulkan/libs/libvulkan.so b/External/vulkan/libs/libvulkan.so deleted file mode 120000 index 2a67c929..00000000 --- a/External/vulkan/libs/libvulkan.so +++ /dev/null @@ -1 +0,0 @@ -libvulkan.so.1 \ No newline at end of file diff --git a/External/vulkan/libs/libvulkan.so.1 b/External/vulkan/libs/libvulkan.so.1 deleted file mode 120000 index 539d42aa..00000000 --- a/External/vulkan/libs/libvulkan.so.1 +++ /dev/null @@ -1 +0,0 @@ -libvulkan.so.1.1.73 \ No newline at end of file diff --git a/External/vulkan/libs/libvulkan.so.1.1.73 b/External/vulkan/libs/libvulkan.so.1.1.73 deleted file mode 100755 index 8702e1fa..00000000 Binary files a/External/vulkan/libs/libvulkan.so.1.1.73 and /dev/null differ diff --git a/External/vulkan/libs/linux/libvulkan.so b/External/vulkan/libs/linux/libvulkan.so new file mode 120000 index 00000000..2a67c929 --- /dev/null +++ b/External/vulkan/libs/linux/libvulkan.so @@ -0,0 +1 @@ +libvulkan.so.1 \ No newline at end of file diff --git a/External/vulkan/libs/linux/libvulkan.so.1 b/External/vulkan/libs/linux/libvulkan.so.1 new file mode 120000 index 00000000..539d42aa --- /dev/null +++ b/External/vulkan/libs/linux/libvulkan.so.1 @@ -0,0 +1 @@ +libvulkan.so.1.1.73 \ No newline at end of file diff --git a/External/vulkan/libs/linux/libvulkan.so.1.1.73 b/External/vulkan/libs/linux/libvulkan.so.1.1.73 new file mode 100755 index 00000000..8702e1fa Binary files /dev/null and b/External/vulkan/libs/linux/libvulkan.so.1.1.73 differ diff --git a/Graphics/GraphicsEngineVulkan/CMakeLists.txt b/Graphics/GraphicsEngineVulkan/CMakeLists.txt index 251bee28..18887fea 100644 --- a/Graphics/GraphicsEngineVulkan/CMakeLists.txt +++ b/Graphics/GraphicsEngineVulkan/CMakeLists.txt @@ -181,7 +181,7 @@ if(PLATFORM_WIN32) elseif(PLATFORM_MACOS) find_library(Vulkan_LIBRARY NAMES MoltenVK PATHS "../../External/vulkan/libs/macOS") else() - find_library(Vulkan_LIBRARY NAMES vulkan HINTS "$ENV{VULKAN_SDK}/lib" "../../External/vulkan/libs") + find_library(Vulkan_LIBRARY NAMES vulkan HINTS "$ENV{VULKAN_SDK}/lib" "../../External/vulkan/libs/linux") endif() list(APPEND PRIVATE_DEPENDENCIES ${Vulkan_LIBRARY}) @@ -244,6 +244,13 @@ else() ) endif() +if(PLATFORM_LINUX) + get_filename_component(VULKAN_LIBRARY_PATH ${Vulkan_LIBRARY} DIRECTORY) + set_target_properties(GraphicsEngineVk-shared PROPERTIES + INSTALL_RPATH "${VULKAN_LIBRARY_PATH}" + ) +endif() + set_common_target_properties(GraphicsEngineVk-shared) set_common_target_properties(GraphicsEngineVk-static) diff --git a/appveyor.yml b/appveyor.yml index 25f084f3..eba06d75 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -18,25 +18,24 @@ environment: cmake_args: -D CMAKE_INSTALL_PREFIX=install platform_name: Windows - # Win32/x64/Release - platform: x64 configuration: Release cmake_args: -D CMAKE_INSTALL_PREFIX=install platform_name: Windows - + # UWP/x64/Debug - platform: x64 configuration: Debug cmake_args: -D CMAKE_INSTALL_PREFIX=install -D CMAKE_SYSTEM_NAME=WindowsStore -D CMAKE_SYSTEM_VERSION=10.0 platform_name: UWP - + # UWP/x64/Release - platform: x64 configuration: Release cmake_args: -D CMAKE_INSTALL_PREFIX=install -D CMAKE_SYSTEM_NAME=WindowsStore -D CMAKE_SYSTEM_VERSION=10.0 platform_name: UWP - + # Win32/x86/Release - platform: Win32 configuration: Release @@ -48,13 +47,13 @@ environment: configuration: Release cmake_args: -D CMAKE_INSTALL_PREFIX=install -D CMAKE_SYSTEM_NAME=WindowsStore -D CMAKE_SYSTEM_VERSION=10.0 platform_name: UWP - + # Win32-8.1SDK/x64/Release - platform: x64 configuration: Release cmake_args: -D CMAKE_INSTALL_PREFIX=install -D CMAKE_SYSTEM_VERSION=8.1 platform_name: Windows8.1 - + # clone directory clone_folder: c:\projects\DiligentCore @@ -71,7 +70,7 @@ install: - cmake --version - echo %PLATFORM% - if "%PLATFORM%"=="x64" ( set generator="Visual Studio 15 2017 Win64" ) else ( set generator="Visual Studio 15 2017" ) - + before_build: - cd c:\projects\DiligentCore - echo %generator% @@ -84,10 +83,10 @@ build: parallel: true after_test: - - cd install + - cd cmk_build\install - 7z a DiligentCore-"%platform_name%"-"%PLATFORM%"-"%CONFIGURATION%".zip DiligentCore\* artifacts: - - path: install\*.zip + - path: cmk_build\install\*.zip name: artifacts-zip -- cgit v1.2.3