CMakeLists.txt 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. ${UFODECODE_INCLUDE_DIRS}
  20. ${PCILIB_INCLUDE_DIRS}
  21. )
  22. link_directories(
  23. ${UFODECODE_LIBRARY_DIRS}
  24. ${PCILIB_LIBRARY_DIRS}
  25. )
  26. set(HEADERS ${HEADERS} model.h cmosis.h base.h reader.h events.h data.h env.h private.h ipecamera.h version.h)
  27. add_library(ipecamera SHARED model.c cmosis.c base.c reader.c events.c data.c env.c)
  28. target_link_libraries(ipecamera ${PCILIB_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${UFODECODE_LIBRARIES} )
  29. install(FILES ipecamera.h
  30. DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
  31. )
  32. install(TARGETS ipecamera
  33. DESTINATION ${PCILIB_PLUGIN_DIR}
  34. )
  35. set(TARNAME "ipecamera")
  36. set(PACKAGE_VERSION ${IPECAMERA_VERSION})
  37. set(PACKAGE_NAME "${TARNAME}")
  38. set(PACKAGE_TARNAME "${TARNAME}")
  39. set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
  40. set(PACKAGE_BUGREPORT "http://ufo.kit.edu/ufo/newticket")
  41. set(CPACK_SOURCE_GENERATOR "TBZ2")
  42. set(CPACK_PACKAGE_CONTACT "Suren A. Chilingaryan <csa@suren.me>")
  43. if (${RELEASE} GREATER 0)
  44. set(CPACK_PACKAGE_VERSION "${PACKAGE_VERSION}.${RELEASE}")
  45. else (${RELEASE} GREATER 0)
  46. set(CPACK_PACKAGE_VERSION "${PACKAGE_VERSION}")
  47. endif (${RELEASE} GREATER 0)
  48. 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}")
  49. set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION}")
  50. include(CPack)
  51. add_custom_target(dist_clean COMMAND ${CMAKE_MAKE_PROGRAM} clean WORKING_DIRECTORY ${CMAKE_CURRENT_DIR})
  52. add_custom_target(dist DEPENDS dist_clean COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
  53. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ipecamera.pc.in ${CMAKE_CURRENT_BINARY_DIR}/ipecamera.pc)
  54. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h)
  55. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ipecamera.spec.in ${CMAKE_CURRENT_BINARY_DIR}/ipecamera.spec)
  56. install(FILES
  57. ${CMAKE_CURRENT_BINARY_DIR}/ipecamera.pc
  58. DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
  59. )