summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt126
1 files changed, 66 insertions, 60 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ed1b3df..7d109bc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,72 +1,78 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.6)
-INCLUDE(CheckIncludeFiles)
-INCLUDE(TestBigEndian)
-INCLUDE(CheckCSourceCompiles)
-INCLUDE(cmake/macros.cmake)
-PROJECT(libaec)
-SET(libaec_VERSION_MAJOR 1)
-SET(libaec_VERSION_MINOR 0)
-SET(libaec_VERSION_PATCH 0)
-SET(CMAKE_BUILD_TYPE Release)
-ENABLE_TESTING()
+cmake_minimum_required(VERSION 2.8.6)
+include(CheckIncludeFiles)
+include(TestBigEndian)
+include(CheckCSourceCompiles)
+include(cmake/macros.cmake)
+project(libaec)
+set(libaec_VERSION_MAJOR 1)
+set(libaec_VERSION_MINOR 0)
+set(libaec_VERSION_PATCH 0)
+set(CMAKE_BUILD_TYPE Release)
+enable_testing()
-CHECK_INCLUDE_FILES(malloc.h HAVE_MALLOC_H)
-CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H)
-TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
-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()
+check_include_files(malloc.h HAVE_MALLOC_H)
+check_include_files(stdint.h HAVE_STDINT_H)
+test_big_endian(WORDS_BIGENDIAN)
+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(
+configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/config.h.in
- ${CMAKE_CURRENT_BINARY_DIR}/config.h
- )
-ADD_DEFINITIONS("-DHAVE_CONFIG_H")
+ ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+add_definitions("-DHAVE_CONFIG_H")
-# Allow the developer to select if Dynamic or Static libraries are built
-OPTION(BUILD_SHARED_LIBS "Build Shared Libraries" ON)
-IF(BUILD_SHARED_LIBS)
- SET (LIB_TYPE SHARED)
-ELSE(BUILD_SHARED_LIBS)
- IF(WIN32)
- MESSAGE(WARNING "You will have to modify libaec.h for static libs.")
- ENDIF(WIN32)
- SET(LIB_TYPE STATIC)
-ENDIF(BUILD_SHARED_LIBS)
+option(BUILD_SHARED_LIBS "Build Shared Libraries" ON)
+if(BUILD_SHARED_LIBS)
+ set (LIB_TYPE SHARED)
+else(BUILD_SHARED_LIBS)
+ if(WIN32)
+ message(WARNING "You will have to modify libaec.h for static libs.")
+ endif(WIN32)
+ set(LIB_TYPE STATIC)
+endif(BUILD_SHARED_LIBS)
-INCLUDE_DIRECTORIES("${PROJECT_BINARY_DIR}")
-INCLUDE_DIRECTORIES("${PROJECT_BINARY_DIR}/src")
-INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/src")
+set(libaec_SRCS
+ ${PROJECT_SOURCE_DIR}/src/encode.c
+ ${PROJECT_SOURCE_DIR}/src/encode_accessors.c
+ ${PROJECT_SOURCE_DIR}/src/decode.c)
-ADD_SUBDIRECTORY(src)
-# EXCLUDE_FROM_ALL doesn't seem to be working in VS
-ADD_SUBDIRECTORY(tests)
+include_directories("${PROJECT_BINARY_DIR}")
+include_directories("${PROJECT_SOURCE_DIR}/src")
-SET(CPACK_PACKAGE_NAME "libaec")
-SET(CPACK_PACKAGE_VENDOR "Deutsches Klimarechenzentrum GmbH")
-SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY
+add_subdirectory(src)
+add_subdirectory(tests)
+
+option(AEC_FUZZING "Enable build of fuzzing targets" OFF)
+if(AEC_FUZZING)
+ add_subdirectory(fuzz)
+endif()
+
+set(CPACK_PACKAGE_NAME "libaec")
+set(CPACK_PACKAGE_VENDOR "Deutsches Klimarechenzentrum GmbH")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
"libaec - Adaptive Entropy Coding library")
-SET(CPACK_PACKAGE_VERSION_MAJOR "${libaec_VERSION_MAJOR}")
-SET(CPACK_PACKAGE_VERSION_MINOR "${libaec_VERSION_MINOR}")
-SET(CPACK_PACKAGE_VERSION_PATCH "${libaec_VERSION_PATCH}")
-SET(CPACK_PACKAGE_INSTALL_DIRECTORY "libaec")
-SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/Copyright.txt")
+set(CPACK_PACKAGE_VERSION_MAJOR "${libaec_VERSION_MAJOR}")
+set(CPACK_PACKAGE_VERSION_MINOR "${libaec_VERSION_MINOR}")
+set(CPACK_PACKAGE_VERSION_PATCH "${libaec_VERSION_PATCH}")
+set(CPACK_PACKAGE_INSTALL_DIRECTORY "libaec")
+set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/Copyright.txt")
-IF(WIN32)
- SET(CPACK_GENERATOR "WIX")
- SET(CPACK_WIX_UPGRADE_GUID "E58A21F6-BB99-46B5-8AD8-6114E4CCA0A6")
- IF(CMAKE_CL_64)
- SET(CPACK_INSTALL_DIRECTORY "$PROGRAMFILES64")
- SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
+if(WIN32)
+ set(CPACK_GENERATOR "WIX")
+ set(CPACK_WIX_UPGRADE_GUID "E58A21F6-BB99-46B5-8AD8-6114E4CCA0A6")
+ if(CMAKE_CL_64)
+ set(CPACK_INSTALL_DIRECTORY "$PROGRAMFILES64")
+ set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
"${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION} (Win64)")
- ELSE(CMAKE_CL_64)
- SET(CPACK_INSTALL_DIRECTORY "$PROGRAMFILES")
- SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
+ else(CMAKE_CL_64)
+ set(CPACK_INSTALL_DIRECTORY "$PROGRAMFILES")
+ set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
"${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")
- ENDIF(CMAKE_CL_64)
-ENDIF(WIN32)
+ endif(CMAKE_CL_64)
+endif(WIN32)
-INCLUDE(CPack)
+include(CPack)