cmake_minimum_required(VERSION 3.10) project(binary_tree VERSION 1.11 LANGUAGES CXX) enable_language(CXX) set(CMAKE_CXX_STANDARD 11) if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") set(CMAKE_CXX_FLAGS "/W4") set(CMAKE_CXX_FLAGS_DEBUG "/Od /Zi /EHsc /DEBUG") elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") set(CMAKE_CXX_FLAGS "-Wall") set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb3") endif() include_directories(${CMAKE_CURRENT_SOURCE_DIR}) enable_testing() find_package(Python 3 COMPONENTS Interpreter) add_executable(test_btree_node test_btree_node.cpp btree_node.hpp btree_node_imp.hpp) add_executable(test_btree test_btree.cpp btree.hpp btree_imp.hpp btree_utils.hpp btree_utils_imp.hpp) add_test(NAME TestBTNode COMMAND ${Python_EXECUTABLE} run_tests.py ${CMAKE_CURRENT_BINARY_DIR}/$<$:$>/test_btree_node 01_tests_btree_node WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) add_test(NAME TestBTreeFoldUnfold COMMAND ${Python_EXECUTABLE} run_tests.py ${CMAKE_CURRENT_BINARY_DIR}/$<$:$>/test_btree 02_tests_btree_fold_unfold WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) add_test(NAME TestBTreeHeightSize COMMAND ${Python_EXECUTABLE} run_tests.py ${CMAKE_CURRENT_BINARY_DIR}/$<$:$>/test_btree 03_tests_btree_height_size WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) add_test(NAME TestBTreeTraversals COMMAND ${Python_EXECUTABLE} run_tests.py ${CMAKE_CURRENT_BINARY_DIR}/$<$:$>/test_btree 04_tests_traversals WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) add_test(NAME TestBTreeInOrder COMMAND ${Python_EXECUTABLE} run_tests.py ${CMAKE_CURRENT_BINARY_DIR}/$<$:$>/test_btree 05_tests_inorder WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})