CMakeLists.txt 1.5 KB

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