CMakeLists.txt 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. cmake_minimum_required(VERSION 2.8)
  2. project(HDF4CPP)
  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)
  8. add_library(hdf4cpp
  9. lib/HdfFile.cpp
  10. lib/HdfItem.cpp
  11. lib/HdfAttribute.cpp
  12. lib/HdfException.cpp
  13. include/hdf4cpp/HdfObject.h
  14. include/hdf4cpp/HdfDestroyer.h
  15. )
  16. target_include_directories(hdf4cpp
  17. PUBLIC
  18. include/
  19. ${HDF4_INCLUDE_DIRS}
  20. )
  21. target_link_libraries(hdf4cpp
  22. ${HDF4_LIBRARIES}
  23. )
  24. enable_testing()
  25. find_package(GTest REQUIRED)
  26. find_package(Threads REQUIRED)
  27. add_executable(hdf4cpp-tests
  28. tests/HdfFileTest.cpp)
  29. target_include_directories(hdf4cpp-tests
  30. PRIVATE
  31. ${GTEST_INCLUDE_DIRS}
  32. ${hdf4cpp_INCLUDE_DIRS}
  33. )
  34. target_link_libraries(hdf4cpp-tests
  35. ${GTEST_BOTH_LIBRARIES}
  36. ${CMAKE_THREAD_LIBS_INIT}
  37. hdf4cpp
  38. )
  39. if (NOT DEFINED TEST_DATA_PATH)
  40. set(TEST_DATA_PATH "${PROJECT_SOURCE_DIR}/tests/test_data/")
  41. message(STATUS "No path to test data defined, using ${TEST_DATA_PATH} as default")
  42. endif ()
  43. target_compile_definitions(hdf4cpp-tests PRIVATE
  44. "TEST_DATA_PATH=\"${TEST_DATA_PATH}\"")
  45. add_test(
  46. NAME hdf4cpp
  47. COMMAND hdf4cpp-tests --gtest_output=xml:${PROJECT_BINARY_DIR}/test_details.xml
  48. WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} # we need the serialized test data for the integration test
  49. )