cmake_minimum_required(VERSION 3.14) project(astarTests LANGUAGES C CXX) include(../cmake/project-is-top-level.cmake) include(../cmake/folders.cmake) # ---- Dependencies ---- if(PROJECT_IS_TOP_LEVEL) find_package(astar REQUIRED) enable_testing() endif() function(test_bench_generator TEST_BENCH_NAME IS_TEST ADD_TO_TEST) set(SOURCES "source/generator/generator.cpp" ) set(HEADERS "source/generator/generator.hpp" ) if (IS_TEST) add_executable("${TEST_BENCH_NAME}" "source/test/${TEST_BENCH_NAME}.cpp" ${SOURCES} ${HEADERS}) else() add_executable("${TEST_BENCH_NAME}" "source/benchmark/${TEST_BENCH_NAME}.cpp" ${SOURCES} ${HEADERS}) endif() if (IS_TEST) target_link_libraries("${TEST_BENCH_NAME}" PRIVATE gtest) else() target_link_libraries("${TEST_BENCH_NAME}" PRIVATE benchmark::benchmark) endif() target_link_libraries("${TEST_BENCH_NAME}" PRIVATE astar::astar) target_link_libraries("${TEST_BENCH_NAME}" PRIVATE raylib) target_link_libraries("${TEST_BENCH_NAME}" PRIVATE FastNoise2) #target_link_libraries("${TEST_BENCH_NAME}" PRIVATE spdlog::spdlog nlohmann_json::nlohmann_json) #if (OpenMP_FOUND OR OpenMP_CXX_FOUND) # target_link_libraries("${TEST_BENCH_NAME}" PRIVATE OpenMP::OpenMP_CXX) #endif() set_target_properties("${TEST_BENCH_NAME}" PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" ) #if(NOT CMAKE_BUILD_TYPE MATCHES Debug AND NOT CMAKE_BUILD_TYPE MATCHES Coverage) # add_test(NAME "${TEST_BENCH_NAME}" COMMAND $) #elseif() # message(STATUS "Disable ${BENCH_NAME}, Performance benchmark test only run on Release/RelWithDebInfo/MinSizeRel") #endif() if (ADD_TO_TEST) add_test(NAME "${TEST_BENCH_NAME}" COMMAND $) endif() target_compile_features("${TEST_BENCH_NAME}" PRIVATE cxx_std_20) endfunction() # ---- Tests ---- if(NOT WIN32) include(../cmake/lib/gtest.cmake) include(../cmake/lib/benchmark.cmake) #include(../cmake/lib/openmp.cmake) include(../cmake/lib/raygui.cmake) include(../cmake/lib/raylib.cmake) include(../cmake/lib/fast_noise2.cmake) #include(../cmake/lib/spdlog.cmake) #include(../cmake/lib/json.cmake) include(../cmake/utile/ccache.cmake) include_directories(source) test_bench_generator(astar_test true true) test_bench_generator(astar_bench false true) test_bench_generator(path_finder_compare false false) test_bench_generator(path_finder_visual false false) endif() # ---- End-of-file commands ---- add_folders(Test)