From: Michal Suchanek Date: Mon, 7 May 2012 14:07:16 +0000 (+0200) Subject: Add multiarch support. X-Git-Url: https://git.cworth.org/git?p=apitrace;a=commitdiff_plain;h=96851e094e4e9f07cd3c95c924f86dc94dfd9dfd Add multiarch support. Signed-off-by: José Fonseca --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 70ebd87..61a3a33 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -202,21 +202,37 @@ endif () # also avoids missing/inconsistent declarations in system headers. include_directories (BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/khronos) + ############################################################################## # Installation directories +if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") + # Debian multiarch support + execute_process(COMMAND dpkg-architecture -qDEB_HOST_MULTIARCH + OUTPUT_VARIABLE ARCH_SUBDIR + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) +endif() + if (WIN32 OR APPLE) # On Windows/MacOSX, applications are usually installed on a directory of # their own set (DOC_INSTALL_DIR doc) set (LIB_INSTALL_DIR lib) + set (LIB_ARCH_INSTALL_DIR lib) else () set (DOC_INSTALL_DIR share/doc/${CMAKE_PROJECT_NAME}) set (LIB_INSTALL_DIR lib/${CMAKE_PROJECT_NAME}) + if (ARCH_SUBDIR) + set (LIB_ARCH_INSTALL_DIR lib/${ARCH_SUBDIR}/${CMAKE_PROJECT_NAME}) + else () + set (LIB_ARCH_INSTALL_DIR lib/${CMAKE_PROJECT_NAME}) + endif () endif () set (SCRIPTS_INSTALL_DIR ${LIB_INSTALL_DIR}/scripts) -set (WRAPPER_INSTALL_DIR ${LIB_INSTALL_DIR}/wrappers) +set (WRAPPER_INSTALL_DIR ${LIB_ARCH_INSTALL_DIR}/wrappers) # Expose the binary/install directories to source # @@ -226,7 +242,8 @@ set (WRAPPER_INSTALL_DIR ${LIB_INSTALL_DIR}/wrappers) add_definitions( -DAPITRACE_BINARY_DIR="${CMAKE_BINARY_DIR}" -DAPITRACE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}" - -DAPITRACE_LIB_INSTALL_DIR="${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}" + -DAPITRACE_SCRIPTS_INSTALL_DIR="${CMAKE_INSTALL_PREFIX}/${SCRIPTS_INSTALL_DIR}" + -DAPITRACE_WRAPPERS_INSTALL_DIR="${CMAKE_INSTALL_PREFIX}/${WRAPPER_INSTALL_DIR}" ) diff --git a/common/trace_resource.cpp b/common/trace_resource.cpp index 8b29cfb..8a1f56c 100644 --- a/common/trace_resource.cpp +++ b/common/trace_resource.cpp @@ -69,7 +69,7 @@ findScript(const char *scriptFilename) #ifndef _WIN32 // Try absolute install directory - scriptPath = APITRACE_LIB_INSTALL_DIR "/scripts"; + scriptPath = APITRACE_SCRIPTS_INSTALL_DIR; scriptPath.join(scriptFilename); if (scriptPath.exists()) { return scriptPath; diff --git a/common/trace_tools_trace.cpp b/common/trace_tools_trace.cpp index cad2b0a..5c88a25 100644 --- a/common/trace_tools_trace.cpp +++ b/common/trace_tools_trace.cpp @@ -84,7 +84,7 @@ findWrapper(const char *wrapperFilename) #ifndef _WIN32 // Try absolute install directory - wrapperPath = APITRACE_LIB_INSTALL_DIR "/wrappers"; + wrapperPath = APITRACE_WRAPPERS_INSTALL_DIR; wrapperPath.join(wrapperFilename); if (wrapperPath.exists()) { return wrapperPath;