diff options
author | Erik de Castro Lopo <erikd@mega-nerd.com> | 2014-07-13 01:36:36 +1000 |
---|---|---|
committer | Erik de Castro Lopo <erikd@mega-nerd.com> | 2014-07-13 01:55:13 +1000 |
commit | 9ee3216fb1ffc282b7b41de620ebd7c1f1f02d3f (patch) | |
tree | 61a6415a195ba59c27d2525d8b5d79f82fcbe91f | |
parent | 0775675d17819f68531cab17ddb5c1b5f1f5c105 (diff) |
CMake : Split functions out into a separate file.
-rw-r--r-- | CMake/functions.cmake | 47 | ||||
-rw-r--r-- | CMake/libsndfile.cmake | 82 | ||||
-rw-r--r-- | CMakeLists.txt | 38 |
3 files changed, 96 insertions, 71 deletions
diff --git a/CMake/functions.cmake b/CMake/functions.cmake new file mode 100644 index 0000000..b4cdd20 --- /dev/null +++ b/CMake/functions.cmake @@ -0,0 +1,47 @@ +include (CheckIncludeFile) +include (CheckTypeSize) +include (TestBigEndian) + +function (mn_try_compile_c_result C_FILE RESULT_NAME RESULT_PASS RESULT_FAIL) + try_compile (COMPILE_RESULT + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/CMake/compiler_is_gcc.c + # OUTPUT_VARIABLE LOG2 + ) + + if (${COMPILE_RESULT}) + set (${RESULT_NAME} ${RESULT_PASS} PARENT_SCOPE) + else (${COMPILE_RESULT}) + set (${RESULT_NAME} ${RESULT_FAIL} PARENT_SCOPE) + endif (${COMPILE_RESULT}) + + endfunction () + +function (mn_check_include_file HEADER_NAME RESULT_NAME) + check_include_file (${HEADER_NAME} HEADER_${RESULT_NAME}) + + if (HEADER_${RESULT_NAME}) + set (${RESULT_NAME} 1 PARENT_SCOPE) + else (HEADER_${RESULT_NAME}) + set (${RESULT_NAME} 0 PARENT_SCOPE) + endif (HEADER_${RESULT_NAME}) + + set (HEADER_${RESULT_NAME}) # Clear the variable. + endfunction () + +function (mn_check_type_size TYPE_NAME RESULT_SIZE) + string (REPLACE "*" "_P" TMP1 ${TYPE_NAME}) + string (REPLACE " " "_" TMP2 ${TMP1}) + + check_type_size (${TYPE_NAME} SIZE_${TMP2}) + + if (SIZE_${TYPE_NAME}) + set (${RESULT_SIZE} ${SIZE_${TYPE_NAME}} PARENT_SCOPE) + else (SIZE_${TYPE_NAME}) + set (${RESULT_SIZE} 0 PARENT_SCOPE) + endif (SIZE_${TYPE_NAME}) + + set (TMP1) + set (TMP2) + set (SIZE_${TMP2}) + endfunction () diff --git a/CMake/libsndfile.cmake b/CMake/libsndfile.cmake index 09dd9d9..5aa30a6 100644 --- a/CMake/libsndfile.cmake +++ b/CMake/libsndfile.cmake @@ -1,37 +1,53 @@ -include (CheckTypeSize) -include (TestBigEndian) - -function (try_compile_c_result C_FILE RESULT_NAME RESULT_PASS RESULT_FAIL) - try_compile (COMPILE_RESULT - ${CMAKE_BINARY_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/CMake/compiler_is_gcc.c - # OUTPUT_VARIABLE LOG2 - ) - - if (${COMPILE_RESULT}) - set (${RESULT_NAME} ${RESULT_PASS} PARENT_SCOPE) - else (${VARNAME}) - set (${RESULT_NAME} ${RESULT_FAIL} PARENT_SCOPE) - endif (${COMPILE_RESULT}) - - endfunction () - -check_type_size (double SIZEOF_DOUBLE) -check_type_size (float SIZEOF_FLOAT) -check_type_size (int SIZEOF_INT) -check_type_size (int64_t SIZEOF_INT64_T) -check_type_size (loff_t SIZEOF_LOFF_T) -check_type_size (long SIZEOF_LONG) -check_type_size (long\ long SIZEOF_LONG_LONG) -check_type_size (offt64_t SIZEOF_OFF64_T) -check_type_size (off_t SIZEOF_OFF_T) -check_type_size (short SIZEOF_SHORT) -check_type_size (size_t SIZEOF_SIZE_T) -check_type_size (ssize_t SIZEOF_SSIZE_T) -check_type_size (void* SIZEOF_VOIDP) -check_type_size (wchar_t SIZEOF_WCHAR_T) +include (CMake/functions.cmake) + + +mn_check_include_file (alsa/asoundlib.h HAVE_ALSA_ASOUNDLIB_H) +mn_check_include_file (byteswap.h HAVE_BYTESWAP_H) +mn_check_include_file (dlfcn.h HAVE_DLFCN_H) +mn_check_include_file (endian.h HAVE_ENDIAN_H) +mn_check_include_file (inttypes.h HAVE_INTTYPES_H) +mn_check_include_file (locale.h HAVE_LOCALE_H) +mn_check_include_file (memory.h HAVE_MEMORY_H) +mn_check_include_file (sndio.h HAVE_SNDIO_H) +mn_check_include_file (stdint.h HAVE_STDINT_H) +mn_check_include_file (stdlib.h HAVE_STDLIB_H) +mn_check_include_file (string.h HAVE_STRING_H) +mn_check_include_file (strings.h HAVE_STRINGS_H) +mn_check_include_file (sys/stat.h HAVE_SYS_STAT_H) +mn_check_include_file (sys/time.h HAVE_SYS_TIME_H) +mn_check_include_file (sys/types.h HAVE_SYS_TYPES_H) +mn_check_include_file (sys/wait.h HAVE_SYS_WAIT_H) +mn_check_include_file (unistd.h HAVE_UNISTD_H) + + +mn_check_type_size (double SIZEOF_DOUBLE) +mn_check_type_size (float SIZEOF_FLOAT) +mn_check_type_size (int SIZEOF_INT) +mn_check_type_size (int64_t SIZEOF_INT64_T) +mn_check_type_size (loff_t SIZEOF_LOFF_T) +mn_check_type_size (long SIZEOF_LONG) +mn_check_type_size (long\ long SIZEOF_LONG_LONG) +mn_check_type_size (offt64_t SIZEOF_OFF64_T) +mn_check_type_size (off_t SIZEOF_OFF_T) +mn_check_type_size (short SIZEOF_SHORT) +mn_check_type_size (size_t SIZEOF_SIZE_T) +mn_check_type_size (ssize_t SIZEOF_SSIZE_T) +mn_check_type_size (void* SIZEOF_VOIDP) +mn_check_type_size (xxwchar_t SIZEOF_WCHAR_T) set (SIZEOF_SF_COUNT_T ${SIZEOF_INT64_T}) +set (TYPEOF_SF_COUNT_T int64_t) + +mn_try_compile_c_result (CMake/compiler_is_gcc.c COMPILER_IS_GCC 1 0) -try_compile_c_result (CMake/compiler_is_gcc.c COMPILER_IS_GCC 1 0) +TEST_BIG_ENDIAN (BIGENDIAN) +if (${BIGENDIAN}) + set (WORDS_BIGENDIAN 1) + set (CPU_IS_BIG_ENDIAN 1) + set (CPU_IS_LITTLE_ENDIAN 0) +else (${BIGENDIAN}) + set (WORDS_BIGENDIAN 0) + set (CPU_IS_LITTLE_ENDIAN 1) + set (CPU_IS_BIG_ENDIAN 0) + endif (${BIGENDIAN}) diff --git a/CMakeLists.txt b/CMakeLists.txt index a82b67a..6909193 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,39 +24,12 @@ else (MSVC) set (USE_WINDOWS_API 0) set (COMPILER_IS_GCC ${COMPILER_IS_GCC}) - set (SIZEOF_DOUBLE ${SIZEOF_DOUBLE}) - set (SIZEOF_FLOAT ${SIZEOF_FLOAT}) - set (SIZEOF_INT ${SIZEOF_INT}) - set (SIZEOF_INT64_T ${SIZEOF_INT64_T}) - set (SIZEOF_LOFF_T ${SIZEOF_LOFF_T}) - set (SIZEOF_LONG ${SIZEOF_LONG}) - set (SIZEOF_LONG_LONG ${SIZEOF_LONG_LONG}) - set (SIZEOF_OFF64_T ${SIZEOF_OFF64_T}) - set (SIZEOF_OFF_T ${SIZEOF_OFF_T}) - set (SIZEOF_SF_COUNT_T ${SIZEOF_INT64_T}) - set (SIZEOF_SHORT ${SIZEOF_SHORT}) - set (SIZEOF_SIZE_T ${SIZEOF_SIZE_T}) - set (SIZEOF_SSIZE_T ${SIZEOF_SSIZE_T}) - set (SIZEOF_VOIDP ${SIZEOF_VOIDP}) - set (SIZEOF_WCHAR_T ${SIZEOF_WCHAR_T}) - - - - set (HAVE_BYTESWAP_H 1) - set (HAVE_INTTYPES_H 1) - set (HAVE_STDINT_H 1) - - set (HAVE_UNISTD_H 1) set (HAVE_EXTERNAL_LIBS 0) set (CPU_CLIPS_NEGATIVE 0) set (CPU_CLIPS_POSITIVE 0) set (HAVE_GETTIMEOFDAY 1) - set (HAVE_SYS_TIME_H 1) set (_POSIX_SOURCE 1) - set (SIZEOF_SF_COUNT_T ${SIZEOF_INT64_T}) - set (TYPEOF_SF_COUNT_T int64_t) - set (SF_COUNT_MAX 0x7fffffffffffffffll) set (ENABLE_EXPERIMENTAL_CODE 0) set (HAVE_DECL_S_IRGRP 1) @@ -65,17 +38,6 @@ else (MSVC) set (OSX_DARWIN_VERSION 0) endif (MSVC) -TEST_BIG_ENDIAN (BIGENDIAN) -if (${BIGENDIAN}) - set (WORDS_BIGENDIAN 1) - set (CPU_IS_BIG_ENDIAN 1) - set (CPU_IS_LITTLE_ENDIAN 0) -else (${BIGENDIAN}) - set (WORDS_BIGENDIAN 0) - set (CPU_IS_LITTLE_ENDIAN 1) - set (CPU_IS_BIG_ENDIAN 0) -endif (${BIGENDIAN}) - #------------------------------------------------------------------------------- # Project definitions follow. |