CMakeLists.txt 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. project(pcitool)
  2. set(PCILIB_VERSION "0.2.1")
  3. set(PCILIB_ABI_VERSION "2")
  4. cmake_minimum_required(VERSION 2.6)
  5. set(DISABLE_PCITOOL FALSE CACHE BOOL "Build only the library")
  6. #list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
  7. find_package(PkgConfig REQUIRED)
  8. find_package(Threads REQUIRED)
  9. set(EXTRA_SYSTEM_LIBS -lrt)
  10. #Check in sibling directory
  11. if (NOT DISABLE_PCITOOL)
  12. pkg_check_modules(FASTWRITER fastwriter REQUIRED)
  13. endif (NOT DISABLE_PCITOOL)
  14. check_include_files(stdatomic.h HAVE_STDATOMIC_H)
  15. add_definitions("-fPIC --std=c99 -Wall -O2 -gdwarf-2 -g3 -fno-omit-frame-pointer")
  16. #add_definitions("-fPIC --std=c99 -Wall -O2")
  17. include(cmake/version.cmake)
  18. VERSION_TO_VARS(${PCILIB_VERSION} PCILIB_VERSION_MAJOR PCILIB_VERSION_MINOR PCILIB_VERSION_MICRO)
  19. add_subdirectory(dma)
  20. add_subdirectory(protocols)
  21. add_subdirectory(pcilib)
  22. add_subdirectory(pcitool)
  23. add_subdirectory(apps)
  24. set_target_properties(pcilib PROPERTIES
  25. VERSION ${PCILIB_VERSION}
  26. SOVERSION ${PCILIB_ABI_VERSION}
  27. )
  28. set(TARNAME "pcitool")
  29. set(PACKAGE_VERSION ${PCILIB_VERSION})
  30. set(PACKAGE_NAME "${TARNAME}")
  31. set(PACKAGE_TARNAME "${TARNAME}")
  32. set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
  33. set(PACKAGE_BUGREPORT "http://ufo.kit.edu/ufo/newticket")
  34. if(NOT DEFINED BIN_INSTALL_DIR)
  35. set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin")
  36. endif(NOT DEFINED BIN_INSTALL_DIR)
  37. if(NOT DEFINED LIB_INSTALL_DIR)
  38. set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib")
  39. endif(NOT DEFINED LIB_INSTALL_DIR)
  40. if(NOT DEFINED INCLUDE_INSTALL_DIR)
  41. set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include")
  42. endif(NOT DEFINED INCLUDE_INSTALL_DIR)
  43. if(NOT DEFINED DATA_INSTALL_DIR)
  44. set(DATA_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share")
  45. endif(NOT DEFINED DATA_INSTALL_DIR)
  46. if(NOT DEFINED LOCALE_INSTALL_DIR)
  47. set(LOCALE_INSTALL_DIR "${DATA_INSTALL_DIR}/locale")
  48. endif(NOT DEFINED LOCALE_INSTALL_DIR)
  49. set(PCILIB_PLUGIN_DIR "${LIB_INSTALL_DIR}/pcilib" CACHE PATH "Directory to install plugins")
  50. set(PCILIB_DATA_DIR "${DATA_INSTALL_DIR}/pcilib" CACHE PATH "Directory to install data files")
  51. set(PCILIB_MODEL_DIR "${PCILIB_DATA_DIR}/models" CACHE PATH "Directory to install XML models")
  52. set(PCILIB_DOC_DIR "${CMAKE_CURRENT_BINARY_DIR}/docs/" CACHE PATH "Directory to install documentation")
  53. set(PCILIB_DEBUG_DIR "." CACHE PATH "Directory to write debug information")
  54. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/misc/pcitool.pc.in ${CMAKE_CURRENT_BINARY_DIR}/misc/pcitool.pc)
  55. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pcilib/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/pcilib/config.h)
  56. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pcilib/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/pcilib/version.h)
  57. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/docs/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/docs/Doxyfile)
  58. install(FILES
  59. ${CMAKE_CURRENT_BINARY_DIR}/misc/pcitool.pc
  60. DESTINATION ${LIB_INSTALL_DIR}/pkgconfig
  61. )
  62. message("-- Configured pcitool ${PCILIB_VERSION_MAJOR}.${PCILIB_VERSION_MINOR}.${PCILIB_VERSION_MICRO} with public ABI ${PCILIB_ABI_VERSION}")