CMakeLists.txt 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. project(pcitool)
  2. set(PCILIB_VERSION "0.2.2")
  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. if(NOT DEFINED BIN_INSTALL_DIR)
  8. set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin")
  9. endif(NOT DEFINED BIN_INSTALL_DIR)
  10. if(NOT DEFINED LIB_INSTALL_DIR)
  11. set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib")
  12. endif(NOT DEFINED LIB_INSTALL_DIR)
  13. if(NOT DEFINED INCLUDE_INSTALL_DIR)
  14. set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include")
  15. endif(NOT DEFINED INCLUDE_INSTALL_DIR)
  16. if(NOT DEFINED DATA_INSTALL_DIR)
  17. set(DATA_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share")
  18. endif(NOT DEFINED DATA_INSTALL_DIR)
  19. if(NOT DEFINED LOCALE_INSTALL_DIR)
  20. set(LOCALE_INSTALL_DIR "${DATA_INSTALL_DIR}/locale")
  21. endif(NOT DEFINED LOCALE_INSTALL_DIR)
  22. SET(ENV{PKG_CONFIG_PATH} "${LIB_INSTALL_DIR}/pkgconfig:$ENV{PKG_CONFIG_PATH}")
  23. find_package(PkgConfig REQUIRED)
  24. find_package(Threads REQUIRED)
  25. find_package(PythonLibs REQUIRED)
  26. set(EXTRA_SYSTEM_LIBS -lrt)
  27. check_include_files(stdatomic.h HAVE_STDATOMIC_H)
  28. find_path(UTHASH_INCLUDE_DIRS uthash.h PATH_SUFFIXES uthash)
  29. if (UTHASH_INCLUDE_DIRS)
  30. message ("uthash is found at ${UTHASH_INCLUDE_DIRS}")
  31. else (UTHASH_INCLUDE_DIRS)
  32. message (FATAL_ERROR "uthash is not found...")
  33. endif (UTHASH_INCLUDE_DIRS)
  34. pkg_check_modules(LIBXML2 libxml-2.0 REQUIRED)
  35. #Check in sibling directory
  36. if (NOT DISABLE_PCITOOL)
  37. pkg_check_modules(FASTWRITER fastwriter REQUIRED)
  38. endif (NOT DISABLE_PCITOOL)
  39. add_definitions("-fPIC --std=c99 -Wall -O2 -gdwarf-2 -g3 -fno-omit-frame-pointer")
  40. #add_definitions("-fPIC --std=c99 -Wall -O2")
  41. include(cmake/version.cmake)
  42. VERSION_TO_VARS(${PCILIB_VERSION} PCILIB_VERSION_MAJOR PCILIB_VERSION_MINOR PCILIB_VERSION_MICRO)
  43. set(TARNAME "pcitool")
  44. set(PACKAGE_VERSION ${PCILIB_VERSION})
  45. set(PACKAGE_NAME "${TARNAME}")
  46. set(PACKAGE_TARNAME "${TARNAME}")
  47. set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
  48. set(PACKAGE_BUGREPORT "http://ufo.kit.edu/ufo/newticket")
  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. add_subdirectory(dma)
  55. add_subdirectory(protocols)
  56. add_subdirectory(views)
  57. add_subdirectory(pcilib)
  58. add_subdirectory(pcitool)
  59. add_subdirectory(apps)
  60. add_subdirectory(xml)
  61. set_target_properties(pcilib PROPERTIES
  62. VERSION ${PCILIB_VERSION}
  63. SOVERSION ${PCILIB_ABI_VERSION}
  64. )
  65. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/misc/pcitool.pc.in ${CMAKE_CURRENT_BINARY_DIR}/misc/pcitool.pc)
  66. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pcilib/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/pcilib/config.h)
  67. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pcilib/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/pcilib/version.h)
  68. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/docs/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/docs/Doxyfile)
  69. install(FILES
  70. ${CMAKE_CURRENT_BINARY_DIR}/misc/pcitool.pc
  71. DESTINATION ${LIB_INSTALL_DIR}/pkgconfig
  72. )
  73. message("-- Configured pcitool ${PCILIB_VERSION_MAJOR}.${PCILIB_VERSION_MINOR}.${PCILIB_VERSION_MICRO} with public ABI ${PCILIB_ABI_VERSION}")