summaryrefslogtreecommitdiff
path: root/BuildTNG.cmake
diff options
context:
space:
mode:
authorMagnus Lundborg <lundborg.magnus@gmail.com>2014-06-22 14:24:43 (GMT)
committerMark Abraham <mark.j.abraham@gmail.com>2014-06-26 14:27:36 (GMT)
commitba9aea42b01c0563e0ff0a886999daeaf6b570a7 (patch)
tree15a21fa116e7103fc097b928bae56a3e5260250d /BuildTNG.cmake
parente8fa7bf3abfc74acf60a048cdfe1f65fdbc0dc2d (diff)
Version 1.6 of the TNG library.
Added functions to get the version of the header and the library. Improved version control of the library using CMake config and version files. Changed tng_util_frame_current_compression_get() return type to double before the API is widely circulated (no release has been made since that function was added). Compiling compression functions into the tng_io library. Uses BuildTNG.cmake instead of including add_subdirectories. Change-Id: I5e4818736fb2632c06ca7df8e84ce9544bf2acaf
Diffstat (limited to 'BuildTNG.cmake')
-rw-r--r--BuildTNG.cmake71
1 files changed, 71 insertions, 0 deletions
diff --git a/BuildTNG.cmake b/BuildTNG.cmake
new file mode 100644
index 0000000..f4f2caf
--- /dev/null
+++ b/BuildTNG.cmake
@@ -0,0 +1,71 @@
+set(TNG_ROOT_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR})
+file(RELATIVE_PATH TNG_ROOT_BINARY_DIR ${CMAKE_SOURCE_DIR} ${TNG_ROOT_SOURCE_DIR})
+set(TNG_ROOT_BINARY_DIR ${CMAKE_BINARY_DIR}/${TNG_ROOT_BINARY_DIR})
+
+function (TNG_GENERATE_VERSION_H)
+ set(TNG_MAJOR_VERSION "1")
+ set(TNG_MINOR_VERSION "6")
+ set(TNG_VERSION_PATCH_LEVEL "0")
+ set(TNG_IO_VERSION "${TNG_MAJOR_VERSION}.${TNG_MINOR_VERSION}.${TNG_VERSION_PATCH_LEVEL}")
+ set(TNG_API_VERSION "6")
+ configure_file(${TNG_ROOT_SOURCE_DIR}/include/tng/version.h.in
+ ${TNG_ROOT_BINARY_DIR}/include/tng/version.h)
+
+ set(TNG_MAJOR_VERSION ${TNG_MAJOR_VERSION} PARENT_SCOPE)
+ set(TNG_IO_VERSION ${TNG_IO_VERSION} PARENT_SCOPE)
+endfunction()
+
+tng_generate_version_h()
+
+include(TestBigEndian)
+test_big_endian(TNG_INTEGER_BIG_ENDIAN)
+include(CheckIncludeFile)
+check_include_file(inttypes.h TNG_HAVE_INTTYPES_H)
+
+macro(TNG_GET_SOURCE_LIST TNG_SOURCELIST TNG_COMPILEDEFS)
+ include_directories(${TNG_ROOT_SOURCE_DIR}/include)
+ include_directories(${TNG_ROOT_BINARY_DIR}/include)
+ set(_tng_compression_sources bwlzh.c bwt.c coder.c dict.c fixpoint.c huffman.c huffmem.c lz77.c merge_sort.c mtf.c rle.c tng_compress.c vals16.c warnmalloc.c widemuldiv.c xtc2.c xtc3.c)
+ set(_tng_io_sources tng_io.c md5.c)
+ set(${TNG_SOURCELIST})
+ set(${TNG_COMPILEDEFS})
+ foreach(_file ${_tng_compression_sources})
+ list(APPEND ${TNG_SOURCELIST} ${TNG_ROOT_SOURCE_DIR}/src/compression/${_file})
+ endforeach()
+ foreach(_file ${_tng_io_sources})
+ list(APPEND ${TNG_SOURCELIST} ${TNG_ROOT_SOURCE_DIR}/src/lib/${_file})
+ endforeach()
+ if(TNG_BUILD_FORTRAN)
+ list(APPEND ${TNG_SOURCELIST} ${TNG_ROOT_SOURCE_DIR}/src/lib/tng_io_fortran.c)
+ endif()
+ if (TNG_HAVE_INTTYPES_H)
+ list(APPEND ${TNG_COMPILEDEFS} USE_STD_INTTYPES_H)
+ endif()
+endmacro()
+
+macro(TNG_SET_SOURCE_PROPERTIES)
+ set(_tng_with_zlib OFF)
+ set(_curr_var)
+ foreach (_arg ${ARGN})
+ if (_arg STREQUAL "WITH_ZLIB")
+ set(_curr_var with_zlib)
+ elseif (_curr_var)
+ set(_tng_${_curr_var} ${_arg})
+ set(_curr_var "")
+ else()
+ message(FATAL_ERROR "Invalid argument ${_arg} to TNG_SET_SOURCE_PROPERTIES")
+ endif()
+ endforeach()
+ if (_tng_with_zlib)
+ set_property(SOURCE ${TNG_ROOT_SOURCE_DIR}/src/lib/tng_io.c
+ APPEND PROPERTY COMPILE_DEFINITIONS USE_ZLIB)
+ endif()
+ if (TNG_HAVE_INTTYPES_H)
+ set_property(SOURCE ${TNG_ROOT_SOURCE_DIR}/src/lib/tng_io.c
+ APPEND PROPERTY COMPILE_DEFINITIONS USE_STD_INTTYPES_H)
+ endif()
+ if (TNG_INTEGER_BIG_ENDIAN)
+ set_property(SOURCE ${TNG_ROOT_SOURCE_DIR}/src/lib/md5.c
+ APPEND PROPERTY COMPILE_DEFINITIONS TNG_INTEGER_BIG_ENDIAN)
+ endif()
+endmacro()
contact: Jan Huwald // Impressum