CMakeLists.txt 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. cmake_minimum_required(VERSION 2.8)
  2. project(HDF4CPP LANGUAGES CXX)
  3. list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
  4. set(CMAKE_CXX_STANDARD 11)
  5. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  6. set(CMAKE_POSITION_INDEPENDENT_CODE ON)
  7. find_package(HDF4 REQUIRED)
  8. find_package(Doxygen)
  9. if (DOXYGEN_FOUND)
  10. configure_file(Doxyfile_user.in ${PROJECT_BINARY_DIR}/Doxyfile_user @ONLY IMMEDIATE)
  11. add_custom_target(docs_user
  12. COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/Doxyfile_user
  13. SOURCES ${PROJECT_BINARY_DIR}/Doxyfile_user
  14. )
  15. configure_file(Doxyfile_all.in ${PROJECT_BINARY_DIR}/Doxyfile_all @ONLY IMMEDIATE)
  16. add_custom_target(docs_all
  17. COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/Doxyfile_all
  18. SOURCES ${PROJECT_BINARY_DIR}/Doxyfile_all
  19. )
  20. else ()
  21. message(WARNING "Doxygen not found")
  22. endif ()
  23. set(HEADERS
  24. include/hdf4cpp/hdf.h
  25. include/hdf4cpp/HdfObject.h
  26. include/hdf4cpp/HdfAttribute.h
  27. include/hdf4cpp/HdfException.h
  28. include/hdf4cpp/HdfFile.h
  29. include/hdf4cpp/HdfItem.h
  30. include/hdf4cpp/HdfDefines.h)
  31. add_library(hdf4cpp
  32. lib/HdfFile.cpp
  33. lib/HdfItem.cpp
  34. lib/HdfAttribute.cpp
  35. lib/HdfException.cpp
  36. ${HEADERS}
  37. )
  38. target_include_directories(hdf4cpp
  39. PUBLIC
  40. include/
  41. ${HDF4_INCLUDE_DIRS}
  42. )
  43. target_link_libraries(hdf4cpp
  44. ${HDF4_LIBRARIES}
  45. )
  46. if (MSVC)
  47. target_compile_definitions(hdf4cpp PUBLIC
  48. NEEDS_NORETURN
  49. )
  50. endif ()
  51. option(HDF4CPP_BUILD_TESTS "Enable building tests" ON)
  52. option(HDF4CPP_BUILD_EXAMPLES "Enable building examples" ON)
  53. if (HDF4CPP_BUILD_TESTS)
  54. add_subdirectory(tests)
  55. endif()
  56. if (HDF4CPP_BUILD_EXAMPLES)
  57. add_subdirectory(examples)
  58. endif()
  59. install(TARGETS hdf4cpp DESTINATION lib)
  60. install(FILES ${HEADERS}
  61. DESTINATION "include/hdf4cpp"
  62. )