diff options
author | Mathis Rosenhauer <rosenhauer@dkrz.de> | 2014-07-25 11:00:04 +0200 |
---|---|---|
committer | Mathis Rosenhauer <rosenhauer@dkrz.de> | 2014-07-25 11:00:04 +0200 |
commit | 6e67b01cfc0d196970f65ef9fd8245f01850f729 (patch) | |
tree | 9aeb10c8440e9f0cb92ee626618fe8de4be1e81c /CMakeLists.txt | |
parent | 07c7544904da078c46a3fc0e7550ce71b417ef7e (diff) | |
download | libaec-6e67b01cfc0d196970f65ef9fd8245f01850f729.tar.gz libaec-6e67b01cfc0d196970f65ef9fd8245f01850f729.tar.bz2 libaec-6e67b01cfc0d196970f65ef9fd8245f01850f729.zip |
Move some CMake chunks as macros in separate file
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 75 |
1 files changed, 8 insertions, 67 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b789ab..6a914e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.6) INCLUDE(CheckIncludeFiles) INCLUDE(TestBigEndian) INCLUDE(CheckCSourceCompiles) +INCLUDE(cmake/macros.cmake) PROJECT(libaec) SET(libaec_VERSION_MAJOR 0) SET(libaec_VERSION_MINOR 2) @@ -11,75 +12,15 @@ ENABLE_TESTING() CHECK_INCLUDE_FILES(malloc.h HAVE_MALLOC_H) CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H) TEST_BIG_ENDIAN(WORDS_BIGENDIAN) -CHECK_C_SOURCE_COMPILES( - "int main(int argc, char *argv[]) -{return __builtin_clzll(1LL);}" - HAVE_DECL___BUILTIN_CLZLL - ) -IF (NOT HAVE_DECL___BUILTIN_CLZLL) - CHECK_C_SOURCE_COMPILES( - "int main(int argc, char *argv[]) -{unsigned long foo; unsigned __int64 bar=1LL; -return _BitScanReverse64(&foo, bar);}" - HAVE_BSR64 - ) -ENDIF (NOT HAVE_DECL___BUILTIN_CLZLL) - -#Inspired from http://www.cmake.org/Wiki/CMakeTestInline -SET(INLINE_TEST_SRC "/* Inspired by autoconf's c.m4 */ -static inline int static_foo(){return 0\;} -int main(int argc, char *argv[]){return 0\;} -") -FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/CMakeTestCInline.c - ${INLINE_TEST_SRC}) - -FOREACH(KEYWORD "inline" "__inline__" "__inline") - IF(NOT DEFINED C_INLINE) - TRY_COMPILE(C_HAS_${KEYWORD} - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_CURRENT_BINARY_DIR}/CMakeTestCInline.c - COMPILE_DEFINITIONS "-Dinline=${KEYWORD}" - ) - IF(C_HAS_${KEYWORD}) - SET(C_INLINE TRUE) - ADD_DEFINITIONS("-Dinline=${KEYWORD}") - ENDIF(C_HAS_${KEYWORD}) - ENDIF(NOT DEFINED C_INLINE) -ENDFOREACH(KEYWORD) - -IF(NOT DEFINED C_INLINE) - ADD_DEFINITIONS("-Dinline=") -ENDIF(NOT DEFINED C_INLINE) - -SET(RESTRICT_TEST_SRC "/* Inspired by autoconf's c.m4 */ -int foo (int * restrict ip){return ip[0]\;} -int main(int argc, char *argv[]){int s[1]\; -int * restrict t = s\; t[0] = 0\; return foo(t)\;} -") - -FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/CMakeTestCRestrict.c - ${RESTRICT_TEST_SRC}) - -FOREACH(KEYWORD "restrict" "__restrict" "__restrict__" "_Restrict") - IF(NOT DEFINED C_RESTRICT) - TRY_COMPILE(C_HAS_${KEYWORD} - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_CURRENT_BINARY_DIR}/CMakeTestCRestrict.c - COMPILE_DEFINITIONS "-Drestrict=${KEYWORD}" - ) - IF(C_HAS_${KEYWORD}) - SET(C_RESTRICT TRUE) - ADD_DEFINITIONS("-Drestrict=${KEYWORD}") - ENDIF(C_HAS_${KEYWORD}) - ENDIF(NOT DEFINED C_RESTRICT) -ENDFOREACH(KEYWORD) - -IF(NOT DEFINED C_RESTRICT) - ADD_DEFINITIONS("-Drestrict=") -ENDIF(NOT DEFINED C_RESTRICT) +CHECK_CLZLL(HAVE_DECL___BUILTIN_CLZLL) +IF(NOT HAVE_DECL___BUILTIN_CLZLL) + CHECK_BSR64(HAVE_BSR64) +ENDIF(NOT HAVE_DECL___BUILTIN_CLZLL) +FIND_INLINE_KEYWORD() +FIND_RESTRICT_KEYWORD() CONFIGURE_FILE( - ${CMAKE_CURRENT_SOURCE_DIR}/config.h.in + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h ) ADD_DEFINITIONS("-DHAVE_CONFIG_H") |