CMakeLists.txt 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. cmake_minimum_required(VERSION 2.8)
  2. set(TARNAME "libufodecode")
  3. set(LIBUFODECODE_API_VERSION "0.1.0")
  4. set(LIBUFODECODE_ABI_VERSION "0.1.0")
  5. set(LIBUFODECODE_ABI_MAJOR_VERSION "0")
  6. set(PACKAGE_VERSION "0.1.0")
  7. set(PACKAGE_NAME "${TARNAME}")
  8. set(PACKAGE_TARNAME "${TARNAME}")
  9. set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
  10. set(PACKAGE_BUGREPORT "http://ufo.kit.edu/ufo/newticket")
  11. if(NOT DEFINED BIN_INSTALL_DIR)
  12. set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin")
  13. endif(NOT DEFINED BIN_INSTALL_DIR)
  14. if(NOT DEFINED LIB_INSTALL_DIR)
  15. set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib")
  16. endif(NOT DEFINED LIB_INSTALL_DIR)
  17. if(NOT DEFINED INCLUDE_INSTALL_DIR)
  18. set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include/${PACKAGE_TARNAME}")
  19. endif(NOT DEFINED INCLUDE_INSTALL_DIR)
  20. if(NOT DEFINED LOCALE_INSTALL_DIR)
  21. set(LOCALE_INSTALL_DIR "${DATA_INSTALL_DIR}/locale/")
  22. endif(NOT DEFINED LOCALE_INSTALL_DIR)
  23. # --- Look for SSE support --------------------------------------------------
  24. include(CheckCXXSourceRuns)
  25. set(SSE_FLAGS)
  26. if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
  27. set(CMAKE_REQUIRED_FLAGS "-msse")
  28. check_cxx_source_runs("
  29. #include <xmmintrin.h>
  30. int main()
  31. {
  32. __m128 a, b;
  33. float vals[4] = {0};
  34. a = _mm_loadu_ps(vals);
  35. b = a;
  36. b = _mm_add_ps(a,b);
  37. _mm_storeu_ps(vals,b);
  38. return 0;
  39. }"
  40. SSE_AVAILABLE)
  41. set(CMAKE_REQUIRED_FLAGS)
  42. if (SSE_AVAILABLE)
  43. option(HAVE_SSE "Use SSE extensions" ON)
  44. set(SSE_FLAGS "-msse")
  45. endif()
  46. endif()
  47. # --- Build library and install ---------------------------------------------
  48. include_directories(
  49. ${CMAKE_SOURCE_DIR}/src
  50. ${CMAKE_CURRENT_BINARY_DIR}
  51. )
  52. add_definitions("--std=c99 -Wall -O2 ${SSE_FLAGS}")
  53. add_library(ufodecode SHARED src/ufodecode.c)
  54. set_target_properties(ufodecode PROPERTIES
  55. VERSION ${LIBUFODECODE_ABI_VERSION}
  56. SOVERSION ${LIBUFODECODE_ABI_MAJOR_VERSION}
  57. )
  58. install(TARGETS ufodecode
  59. LIBRARY DESTINATION lib${LIB_SUFFIX}
  60. )
  61. install(FILES
  62. src/ufodecode.h
  63. DESTINATION include
  64. )
  65. configure_file(ufodecode.pc.in ${CMAKE_CURRENT_BINARY_DIR}/ufodecode.pc)
  66. if ("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
  67. set(DEBUG "1")
  68. endif()
  69. configure_file(src/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
  70. install(FILES
  71. ${CMAKE_CURRENT_BINARY_DIR}/ufodecode.pc
  72. DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
  73. # --- Build test executable -------------------------------------------------
  74. add_executable(ipedec test/ipedec.c)
  75. target_link_libraries(ipedec ufodecode)
  76. install(TARGETS ipedec DESTINATION ${BIN_INSTALL_DIR})