CMakeLists.txt 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. project(ipecamera C)
  2. set(RELEASE "0")
  3. set(IPECAMERA_VERSION "0.0.1")
  4. set(IPECAMERA_ABI_VERSION "0")
  5. cmake_minimum_required(VERSION 2.6)
  6. list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
  7. add_definitions("-fPIC --std=gnu99 -Wall -O2 -gdwarf-2 -g3 -fno-omit-frame-pointer")
  8. find_package(PkgConfig REQUIRED)
  9. find_package(Threads REQUIRED)
  10. pkg_check_modules(UFODECODE ufodecode>=0.3 REQUIRED)
  11. pkg_check_modules(PCILIB pcitool>=0.2 REQUIRED)
  12. exec_program("pkg-config --variable=plugindir pcitool" OUTPUT_VARIABLE PCILIB_PLUGIN_DIR)
  13. include(cmake/version.cmake)
  14. VERSION_TO_VARS(${IPECAMERA_VERSION} IPECAMERA_VERSION_MAJOR IPECAMERA_VERSION_MINOR IPECAMERA_VERSION_MICRO)
  15. include(GNUInstallDirs)
  16. add_subdirectory(apps)
  17. include_directories(
  18. ${CMAKE_SOURCE_DIR}
  19. ${CMAKE_BINARY_DIR}
  20. ${UFODECODE_INCLUDE_DIRS}
  21. ${PCILIB_INCLUDE_DIRS}
  22. )
  23. link_directories(
  24. ${UFODECODE_LIBRARY_DIRS}
  25. ${PCILIB_LIBRARY_DIRS}
  26. )
  27. set(HEADERS ${HEADERS} model.h cmosis.h base.h reader.h events.h data.h env.h private.h ipecamera.h version.h)
  28. add_library(ipecamera SHARED model.c cmosis.c base.c reader.c events.c data.c env.c)
  29. target_link_libraries(ipecamera ${PCILIB_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${UFODECODE_LIBRARIES} )
  30. install(FILES ipecamera.h
  31. DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
  32. )
  33. install(TARGETS ipecamera
  34. DESTINATION ${PCILIB_PLUGIN_DIR}
  35. )
  36. set(TARNAME "ipecamera")
  37. set(PACKAGE_VERSION ${IPECAMERA_VERSION})
  38. set(PACKAGE_NAME "${TARNAME}")
  39. set(PACKAGE_TARNAME "${TARNAME}")
  40. set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
  41. set(PACKAGE_BUGREPORT "http://ufo.kit.edu/ufo/newticket")
  42. set(CPACK_SOURCE_GENERATOR "TBZ2")
  43. set(CPACK_PACKAGE_CONTACT "Suren A. Chilingaryan <csa@suren.me>")
  44. if (${RELEASE} GREATER 0)
  45. set(CPACK_PACKAGE_VERSION "${PACKAGE_VERSION}.${RELEASE}")
  46. else (${RELEASE} GREATER 0)
  47. set(CPACK_PACKAGE_VERSION "${PACKAGE_VERSION}")
  48. endif (${RELEASE} GREATER 0)
  49. set(CPACK_SOURCE_IGNORE_FILES "/.bzr/;CMakeFiles;_CPack_Packages;cmake_install.cmake;CPack.*.cmake;CMakeCache.txt;install_manifest.txt;config.h$;.pc$;Makefile;.tar.bz2$;~$;${CPACK_SOURCE_IGNORE_FILES}")
  50. set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION}")
  51. include(CPack)
  52. add_custom_target(dist_clean COMMAND ${CMAKE_MAKE_PROGRAM} clean WORKING_DIRECTORY ${CMAKE_CURRENT_DIR})
  53. add_custom_target(dist DEPENDS dist_clean COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
  54. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ipecamera.pc.in ${CMAKE_CURRENT_BINARY_DIR}/ipecamera.pc)
  55. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h)
  56. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ipecamera.spec.in ${CMAKE_CURRENT_BINARY_DIR}/ipecamera.spec)
  57. install(FILES
  58. ${CMAKE_CURRENT_BINARY_DIR}/ipecamera.pc
  59. DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
  60. )