summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorMathis Rosenhauer <rosenhauer@dkrz.de>2014-07-25 11:00:04 +0200
committerMathis Rosenhauer <rosenhauer@dkrz.de>2014-07-25 11:00:04 +0200
commit6e67b01cfc0d196970f65ef9fd8245f01850f729 (patch)
tree9aeb10c8440e9f0cb92ee626618fe8de4be1e81c /CMakeLists.txt
parent07c7544904da078c46a3fc0e7550ce71b417ef7e (diff)
downloadlibaec-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.txt75
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")