X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=CMakeLists.txt;h=2edc51b84ae9069f8138ea3f02cc67b7ad7cd0cc;hb=bf1f242397b87c2d501b1ca7a8045f7f3649ca3b;hp=f817701e1f8e8ef6798ac41487e8e11124d0ea01;hpb=4f242f43bf4b3c8f5daadc4496c0e84ae55117b3;p=apitrace diff --git a/CMakeLists.txt b/CMakeLists.txt index f817701..2edc51b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,7 +70,7 @@ include (CheckCXXCompilerFlag) if (WIN32) # http://msdn.microsoft.com/en-us/library/aa383745.aspx - add_definitions (-D_WIN32_WINNT=0x0500 -DWINVER=0x0500) + add_definitions (-D_WIN32_WINNT=0x0501 -DWINVER=0x0501) else (WIN32) CHECK_CXX_COMPILER_FLAG("-fvisibility=hidden" CXX_COMPILER_FLAG_VISIBILITY) if (CXX_COMPILER_FLAG_VISIBILITY) @@ -92,13 +92,15 @@ if (MSVC) add_definitions (-D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS) add_definitions (-D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS) add_definitions (-W4) + # XXX: it's safer to use ssize_t everywhere instead of disabling warning + add_definitions (-wd4018) # signed/unsigned mismatch add_definitions (-wd4063) # not a valid value for switch of enum + add_definitions (-wd4100) # unreferenced formal parameter add_definitions (-wd4127) # conditional expression is constant add_definitions (-wd4244) # conversion from 'type1' to 'type2', possible loss of data add_definitions (-wd4505) # unreferenced local function has been removed + add_definitions (-wd4512) # assignment operator could not be generated add_definitions (-wd4800) # forcing value to bool 'true' or 'false' (performance warning) - # XXX: it's safer to use ssize_t everywhere instead of disabling warning - add_definitions (-wd4018) # signed/unsigned mismatch # Use static runtime # http://www.cmake.org/Wiki/CMake_FAQ#How_can_I_build_my_MSVC_application_with_a_static_runtime.3F @@ -115,6 +117,16 @@ else () add_definitions (-Wall) # XXX: it's safer to use ssize_t everywhere instead of disabling warning add_definitions (-Wno-sign-compare) # comparison between signed and unsigned integer expressions + + # Use GDB extensions if available + if (CMAKE_COMPILER_IS_GNUC) + set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -ggdb -O0") + set (CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -ggdb") + endif () + if (CMAKE_COMPILER_IS_GNUCXX) + set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb -O0") + set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -ggdb") + endif () endif () if (MINGW) @@ -200,21 +212,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 (SCRIPTS_INSTALL_DIR ${LIB_INSTALL_DIR}/scripts) +set (WRAPPER_INSTALL_DIR ${LIB_ARCH_INSTALL_DIR}/wrappers) # Expose the binary/install directories to source # @@ -224,7 +252,8 @@ set(WRAPPER_INSTALL_DIR ${LIB_INSTALL_DIR}/wrappers) add_definitions( -DAPITRACE_BINARY_DIR="${CMAKE_BINARY_DIR}" -DAPITRACE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}" - -DAPITRACE_WRAPPER_INSTALL_DIR="${CMAKE_INSTALL_PREFIX}/${WRAPPER_INSTALL_DIR}" + -DAPITRACE_SCRIPTS_INSTALL_DIR="${CMAKE_INSTALL_PREFIX}/${SCRIPTS_INSTALL_DIR}" + -DAPITRACE_WRAPPERS_INSTALL_DIR="${CMAKE_INSTALL_PREFIX}/${WRAPPER_INSTALL_DIR}" )