Browse Source

Make tests and examples optional

Moritz Wanzenböck 6 years ago
parent
commit
d7f7a72747
2 changed files with 42 additions and 37 deletions
  1. 8 37
      CMakeLists.txt
  2. 34 0
      tests/CMakeLists.txt

+ 8 - 37
CMakeLists.txt

@@ -3,8 +3,6 @@ cmake_minimum_required(VERSION 2.8)
 project(HDF4CPP LANGUAGES CXX)
 
 list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
-
-
 set(CMAKE_CXX_STANDARD 11)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 set(CMAKE_POSITION_INDEPENDENT_CODE ON)
@@ -63,42 +61,15 @@ if (MSVC)
             )
 endif ()
 
+option(HDF4CPP_BUILD_TESTS "Enable building tests" ON)
+option(HDF4CPP_BUILD_EXAMPLES "Enable building examples" ON)
 
-enable_testing()
-find_package(GTest REQUIRED)
-find_package(Threads REQUIRED)
-
-add_executable(hdf4cpp-tests
-        tests/HdfFileTest.cpp)
-
-target_include_directories(hdf4cpp-tests
-        PRIVATE
-        ${GTEST_INCLUDE_DIRS}
-        )
-target_link_libraries(hdf4cpp-tests
-        ${GTEST_BOTH_LIBRARIES}
-        ${CMAKE_THREAD_LIBS_INIT}
-        hdf4cpp
-        )
-target_compile_definitions(hdf4cpp-tests PRIVATE
-        GTEST_DONT_DEFINE_FAIL
-        GTEST_DONT_DEFINE_SUCCEED)
-
-
-if (NOT DEFINED TEST_DATA_PATH)
-    set(TEST_DATA_PATH "${PROJECT_SOURCE_DIR}/tests/test_data/")
-    message(STATUS "No path to test data defined, using ${TEST_DATA_PATH} as default")
-endif ()
-target_compile_definitions(hdf4cpp-tests PRIVATE
-        "TEST_DATA_PATH=\"${TEST_DATA_PATH}\"")
-
-add_test(
-        NAME hdf4cpp
-        COMMAND hdf4cpp-tests --gtest_output=xml:${PROJECT_BINARY_DIR}/test_details.xml
-        WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} # we need the serialized test data for the integration test
-)
-
-add_subdirectory(examples)
+if (HDF4CPP_BUILD_TESTS)
+    add_subdirectory(tests)
+endif()
+if (HDF4CPP_BUILD_EXAMPLES)
+    add_subdirectory(examples)
+endif()
 
 install(TARGETS hdf4cpp DESTINATION lib)
 install(FILES ${HEADERS}

+ 34 - 0
tests/CMakeLists.txt

@@ -0,0 +1,34 @@
+enable_testing()
+
+find_package(GTest REQUIRED)
+find_package(Threads REQUIRED)
+
+add_executable(hdf4cpp-tests
+        HdfFileTest.cpp)
+
+target_include_directories(hdf4cpp-tests
+        PRIVATE
+        ${GTEST_INCLUDE_DIRS}
+        )
+target_link_libraries(hdf4cpp-tests
+        ${GTEST_BOTH_LIBRARIES}
+        ${CMAKE_THREAD_LIBS_INIT}
+        hdf4cpp
+        )
+target_compile_definitions(hdf4cpp-tests PRIVATE
+        GTEST_DONT_DEFINE_FAIL
+        GTEST_DONT_DEFINE_SUCCEED)
+
+
+if (NOT DEFINED TEST_DATA_PATH)
+    set(TEST_DATA_PATH "${PROJECT_SOURCE_DIR}/tests/test_data/")
+    message(STATUS "No path to test data defined, using ${TEST_DATA_PATH} as default")
+endif ()
+target_compile_definitions(hdf4cpp-tests PRIVATE
+        "TEST_DATA_PATH=\"${TEST_DATA_PATH}\"")
+
+add_test(
+        NAME hdf4cpp
+        COMMAND hdf4cpp-tests --gtest_output=xml:${PROJECT_BINARY_DIR}/test_details.xml
+        WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+)