CheckFileOffsetBits.cmake 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. # - Check if _FILE_OFFSET_BITS macro needed for large files
  2. # CHECK_FILE_OFFSET_BITS ()
  3. #
  4. # The following variables may be set before calling this macro to
  5. # modify the way the check is run:
  6. #
  7. # CMAKE_REQUIRED_FLAGS = string of compile command line flags
  8. # CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
  9. # CMAKE_REQUIRED_INCLUDES = list of include directories
  10. # Copyright (c) 2009, Michihiro NAKAJIMA
  11. #
  12. # Redistribution and use is allowed according to the terms of the BSD license.
  13. # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
  14. #INCLUDE(CheckCXXSourceCompiles)
  15. MACRO (CHECK_FILE_OFFSET_BITS)
  16. IF(NOT DEFINED _FILE_OFFSET_BITS)
  17. MESSAGE(STATUS "Cheking _FILE_OFFSET_BITS for large files")
  18. TRY_COMPILE(__WITHOUT_FILE_OFFSET_BITS_64
  19. ${CMAKE_BINARY_DIR}
  20. ${libarchive_SOURCE_DIR}/build/cmake/CheckFileOffsetBits.c
  21. COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS})
  22. IF(NOT __WITHOUT_FILE_OFFSET_BITS_64)
  23. TRY_COMPILE(__WITH_FILE_OFFSET_BITS_64
  24. ${CMAKE_BINARY_DIR}
  25. ${libarchive_SOURCE_DIR}/build/cmake/CheckFileOffsetBits.c
  26. COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} -D_FILE_OFFSET_BITS=64)
  27. ENDIF(NOT __WITHOUT_FILE_OFFSET_BITS_64)
  28. IF(NOT __WITHOUT_FILE_OFFSET_BITS_64 AND __WITH_FILE_OFFSET_BITS_64)
  29. SET(_FILE_OFFSET_BITS 64 CACHE INTERNAL "_FILE_OFFSET_BITS macro needed for large files")
  30. MESSAGE(STATUS "Cheking _FILE_OFFSET_BITS for large files - needed")
  31. ELSE(NOT __WITHOUT_FILE_OFFSET_BITS_64 AND __WITH_FILE_OFFSET_BITS_64)
  32. SET(_FILE_OFFSET_BITS "" CACHE INTERNAL "_FILE_OFFSET_BITS macro needed for large files")
  33. MESSAGE(STATUS "Cheking _FILE_OFFSET_BITS for large files - not needed")
  34. ENDIF(NOT __WITHOUT_FILE_OFFSET_BITS_64 AND __WITH_FILE_OFFSET_BITS_64)
  35. ENDIF(NOT DEFINED _FILE_OFFSET_BITS)
  36. ENDMACRO (CHECK_FILE_OFFSET_BITS)