astar/test/CMakeLists.txt
Bensuperpc 9a3c3cdd04
Update example, header and screenshot
Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2024-02-13 00:08:10 +01:00

93 lines
2.7 KiB
CMake

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 $<TARGET_FILE:${TEST_BENCH_NAME}>)
#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 $<TARGET_FILE:${TEST_BENCH_NAME}>)
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)