]> git.cworth.org Git - apitrace/commitdiff
Add multiarch support.
authorMichal Suchanek <hramrach@gmail.com>
Mon, 7 May 2012 14:07:16 +0000 (16:07 +0200)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Sat, 12 May 2012 11:11:22 +0000 (12:11 +0100)
Signed-off-by: José Fonseca <jose.r.fonseca@gmail.com>
CMakeLists.txt
common/trace_resource.cpp
common/trace_tools_trace.cpp

index 70ebd872e54bd540fa79e27a73f6d50b2e07135b..61a3a33790fea680d6885ed4172c0a00a867cfb8 100644 (file)
@@ -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}"
 )
 
 
index 8b29cfb79373200dd658248303890b668132a62b..8a1f56cb1b9ca88c825579c98608a6ae5a2c2db1 100644 (file)
@@ -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;
index cad2b0ae153bf7192f7aefb289f0c0d24c8f1a76..5c88a25626c91ad77a9ba30ab5532c5dc0e80f65 100644 (file)
@@ -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;