From: Tim Kientzle Date: Sun, 13 Dec 2009 23:30:00 +0000 (-0500) Subject: A few Cmake build improvements from Issue 48: X-Git-Tag: v2.8.0~91 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dd63f1c52e3c8c711a30168519a6e510a7ced04c;p=thirdparty%2Flibarchive.git A few Cmake build improvements from Issue 48: * Use the path holding the current file to make the build/cmake/*.cmake files more independent * Use CMAKE_CURRENT_SOURCE_DIR in the top-level CMakeLists.txt to locate the macro files and the version file. SVN-Revision: 1733 --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 8cc6dbede..92aac98b7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,11 +3,11 @@ PROJECT(libarchive C) # CMAKE_MINIMUM_REQUIRED(VERSION 2.6.3 FATAL_ERROR) -SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/build/cmake") +SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/build/cmake") # # Version - read from 'version' file. # -FILE(STRINGS ${CMAKE_SOURCE_DIR}/build/version _version) +FILE(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/build/version _version) STRING(REGEX REPLACE "^([0-9])[0-9][0-9][0-9][0-9][0-9][0-9][a-z]?$" "\\1" _major ${_version}) STRING(REGEX REPLACE diff --git a/build/cmake/CheckFileOffsetBits.cmake b/build/cmake/CheckFileOffsetBits.cmake index 2f551e80f..4132b387e 100644 --- a/build/cmake/CheckFileOffsetBits.cmake +++ b/build/cmake/CheckFileOffsetBits.cmake @@ -12,21 +12,22 @@ # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. - #INCLUDE(CheckCXXSourceCompiles) -MACRO (CHECK_FILE_OFFSET_BITS) +GET_FILENAME_COMPONENT(_selfdir_CheckFileOffsetBits + "${CMAKE_CURRENT_LIST_FILE}" PATH) +MACRO (CHECK_FILE_OFFSET_BITS) IF(NOT DEFINED _FILE_OFFSET_BITS) MESSAGE(STATUS "Cheking _FILE_OFFSET_BITS for large files") TRY_COMPILE(__WITHOUT_FILE_OFFSET_BITS_64 - ${CMAKE_BINARY_DIR} - ${CMAKE_SOURCE_DIR}/build/cmake/CheckFileOffsetBits.c + ${CMAKE_CURRENT_BINARY_DIR} + ${_selfdir_CheckFileOffsetBits}/CheckFileOffsetBits.c COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}) IF(NOT __WITHOUT_FILE_OFFSET_BITS_64) TRY_COMPILE(__WITH_FILE_OFFSET_BITS_64 - ${CMAKE_BINARY_DIR} - ${CMAKE_SOURCE_DIR}/build/cmake/CheckFileOffsetBits.c + ${CMAKE_CURRENT_BINARY_DIR} + ${_selfdir_CheckFileOffsetBits}/CheckFileOffsetBits.c COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} -D_FILE_OFFSET_BITS=64) ENDIF(NOT __WITHOUT_FILE_OFFSET_BITS_64) diff --git a/build/cmake/CheckFuncs.cmake b/build/cmake/CheckFuncs.cmake index e9a5933a1..0670df97f 100644 --- a/build/cmake/CheckFuncs.cmake +++ b/build/cmake/CheckFuncs.cmake @@ -23,16 +23,18 @@ # For details see the accompanying COPYING-CMAKE-SCRIPTS file. INCLUDE(CheckFunctionExists) +GET_FILENAME_COMPONENT(_selfdir_CheckFunctionExistsGlibc + "${CMAKE_CURRENT_LIST_FILE}" PATH) MACRO (CHECK_FUNCTION_EXISTS_GLIBC _FUNC _FUNCVAR) IF(NOT DEFINED ${_FUNCVAR}) SET(CHECK_STUB_FUNC_1 "__stub_${_FUNC}") SET(CHECK_STUB_FUNC_2 "__stub___${_FUNC}") - CONFIGURE_FILE( ${libarchive_SOURCE_DIR}/build/cmake/CheckFuncs_stub.c.in - ${CMAKE_BINARY_DIR}/cmake.tmp/CheckFuncs_stub.c IMMEDIATE) + CONFIGURE_FILE( ${_selfdir_CheckFunctionExistsGlibc}/CheckFuncs_stub.c.in + ${CMAKE_CURRENT_BINARY_DIR}/cmake.tmp/CheckFuncs_stub.c IMMEDIATE) TRY_COMPILE(__stub - ${CMAKE_BINARY_DIR} - ${CMAKE_BINARY_DIR}/cmake.tmp/CheckFuncs_stub.c + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR}/cmake.tmp/CheckFuncs_stub.c COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_INCLUDE_FILE_FLAGS}