mamba/libmamba/tests/CMakeLists.txt

119 lines
3.3 KiB
CMake

cmake_minimum_required(VERSION 3.16)
if (BUILD_SHARED)
set(libmamba_target "libmamba")
else ()
set(libmamba_target "libmamba-static")
endif()
add_executable(testing_libmamba_lock libmamba_lock/lock.cpp)
target_link_libraries(testing_libmamba_lock PUBLIC ${libmamba_target})
target_compile_features(testing_libmamba_lock PUBLIC cxx_std_17)
mamba_target_add_compile_warnings(testing_libmamba_lock WARNING_AS_ERROR ${MAMBA_WARNING_AS_ERROR})
set(LIBMAMBA_TEST_SRCS
include/mambatests.hpp
src/test_main.cpp
# C++ wrapping of libsolv
src/solv-cpp/pool_data.cpp
src/solv-cpp/test_queue.cpp
src/solv-cpp/test_pool.cpp
src/solv-cpp/test_repo.cpp
src/solv-cpp/test_solvable.cpp
src/solv-cpp/test_solver.cpp
src/solv-cpp/test_transaction.cpp
src/solv-cpp/test_scenarios.cpp
# Utility library
src/util/test_string.cpp
src/util/test_cast.cpp
src/util/test_compare.cpp
src/util/test_type_traits.cpp
src/util/test_flat_set.cpp
src/util/test_flat_bool_expr_tree.cpp
src/util/test_graph.cpp
src/util/test_iterator.cpp
src/util/test_path_manip.cpp
src/util/test_url_manip.cpp
src/util/test_url.cpp
# Implementation of version and matching specs
src/specs/test_archive.cpp
src/specs/test_platform.cpp
src/specs/test_conda_url.cpp
src/specs/test_version.cpp
src/specs/test_version_spec.cpp
src/specs/test_repo_data.cpp
../longpath.manifest
src/core/test_activation.cpp
src/core/test_channel.cpp
src/core/test_configuration.cpp
src/core/test_cpp.cpp
src/core/test_downloader.cpp
src/core/test_env_file_reading.cpp
src/core/test_environments_manager.cpp
src/core/test_history.cpp
src/core/test_lockfile.cpp
src/core/test_pinning.cpp
src/core/test_output.cpp
src/core/test_progress_bar.cpp
src/core/test_shell_init.cpp
src/core/test_thread_utils.cpp
src/core/test_validate.cpp
src/core/test_virtual_packages.cpp
src/core/test_util.cpp
src/core/test_util_os.cpp
src/core/test_system_env.cpp
src/core/test_env_lockfile.cpp
src/core/test_execution.cpp
src/core/test_invoke.cpp
src/core/test_tasksync.cpp
src/core/test_filesystem.cpp
src/core/test_satisfiability_error.cpp
)
message(STATUS "Building libmamba C++ tests")
add_executable(test_libmamba ${LIBMAMBA_TEST_SRCS})
mamba_target_add_compile_warnings(test_libmamba WARNING_AS_ERROR ${MAMBA_WARNING_AS_ERROR})
target_include_directories(
test_libmamba
PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/include"
"${CMAKE_CURRENT_SOURCE_DIR}/src"
"${CMAKE_SOURCE_DIR}/libmamba/src"
)
find_package(doctest REQUIRED)
find_package(Threads REQUIRED)
target_link_libraries(
test_libmamba
PUBLIC
${libmamba_target}
reproc
reproc++
PRIVATE
doctest::doctest
Threads::Threads
)
# Copy data directory into binary dir to avoid modifications
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/data" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
target_compile_definitions(
test_libmamba
PRIVATE
DOCTEST_CONFIG_USE_STD_HEADERS
MAMBA_TEST_DATA_DIR="${CMAKE_CURRENT_BINARY_DIR}/data"
MAMBA_TEST_LOCK_EXE="$<TARGET_FILE:testing_libmamba_lock>"
)
target_compile_features(test_libmamba PUBLIC cxx_std_17)
add_custom_target(test COMMAND test_libmamba DEPENDS test_libmamba)