diff --git a/pyproject.toml b/pyproject.toml index 17c998f312d33f8207009bad3db765e253a57de6..f2c248cdf6983caad4b546e780d649f488edc164 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -54,14 +54,16 @@ before-build = [ "bash .gitlab/ci/cibuildwheel_build_deps_before_build_wheel.sh /host" ] before-test = [ - "bash .gitlab/ci/cibuildwheel_build_deps_before_build_wheel.sh /host" + "pip install aidge-core", + "pip install aidge-backend-cpu", ] [tool.cibuildwheel.windows] before-build = [ "powershell -File .\\.gitlab\\ci\\cibuildwheel_build_deps_before_build_wheel.ps1" ] before-test = [ - "powershell -File .\\.gitlab\\ci\\cibuildwheel_build_deps_before_build_wheel.ps1" + "pip install aidge-core", + "pip install aidge-backend-cpu", ] diff --git a/unit_tests/CMakeLists.txt b/unit_tests/CMakeLists.txt index d33a87b486b8f14eab0cb8e99a9317ee14cbe647..39af9ec9b609b8b2c5685699ac014406ed64df72 100644 --- a/unit_tests/CMakeLists.txt +++ b/unit_tests/CMakeLists.txt @@ -1,55 +1,67 @@ -Include(FetchContent) +include(FetchContent) +# Fetch and make available Catch2 for unit testing FetchContent_Declare( Catch2 GIT_REPOSITORY https://github.com/catchorg/Catch2.git GIT_TAG v3.0.1 # or a later release ) - FetchContent_MakeAvailable(Catch2) +# Gather all source files for the test executable file(GLOB_RECURSE src_files "*.cpp") set(tests_exe tests${module_name}) -add_executable(tests_exe ${src_files}) - -set_target_properties(tests_exe PROPERTIES CUDA_SEPARABLE_COMPILATION ON) +# Find required and optional dependencies find_package(aidge_backend_cpu REQUIRED) find_package(aidge_backend_cuda) -if(NOT DEFINED CMAKE_CUDA_STANDARD) - set(CMAKE_CUDA_STANDARD 14) - set(CMAKE_CUDA_STANDARD_REQUIRED ON) +# Find CUDA Toolkit if CUDA backend is available +if(aidge_backend_cuda_FOUND) + # Specify CUDA Toolkit without COMPONENTS to avoid missing imported targets + enable_language(CUDA) + find_package(CUDA REQUIRED) + find_package(CUDAToolkit REQUIRED) + + if(NOT DEFINED CMAKE_CUDA_STANDARD) + set(CMAKE_CUDA_STANDARD 14) + set(CMAKE_CUDA_STANDARD_REQUIRED ON) + endif() endif() -target_link_libraries(tests_exe +# Define the test executable +add_executable(${tests_exe} ${src_files}) + +# Include CUDA headers +include_directories(${CUDA_INCLUDE_DIRS}) +# Link against the required aidge_backend_cpu library +target_link_libraries(${tests_exe} PUBLIC ${module_name} _aidge_backend_cpu PRIVATE Catch2::Catch2WithMain ) +# Conditional CUDA linkage and definitions if(aidge_backend_cuda_FOUND) + # Enable CUDA language support and separable compilation for the target enable_language(CUDA) - find_package(CUDAToolkit REQUIRED) - - target_link_libraries( _aidge_backend_cuda - INTERFACE - cudart # Ensure CUDA dependencies are included - cublas # Include other CUDA components if needed - cudnn - ) - - target_include_directories(_aidge_backend_cuda INTERFACE ${CUDAToolkit_INCLUDE_DIRS}) - - target_link_libraries(tests_exe - PUBLIC ${module_name} _aidge_backend_cuda + set_target_properties(${tests_exe} PROPERTIES CUDA_SEPARABLE_COMPILATION ON) + + target_include_directories(${tests_exe} PRIVATE ${CUDAToolkit_INCLUDE_DIRS}) + # Link manually specified CUDA libraries if the targets are not available + target_link_libraries(${tests_exe} + PUBLIC + _aidge_backend_cuda + CUDA::cudart + CUDA::cublas + cudnn ) - # Define a preprocessor macro if aidge_backend_cuda is linked - target_compile_definitions(tests_exe PUBLIC USE_AIDGE_BACKEND_CUDA) + # Define a preprocessor macro to indicate CUDA support + target_compile_definitions(${tests_exe} PUBLIC USE_AIDGE_BACKEND_CUDA) endif() - +# Add Catch2 test discovery list(APPEND CMAKE_MODULE_PATH ${catch2_SOURCE_DIR}/extras) include(CTest) include(Catch) -catch_discover_tests(tests_exe) +catch_discover_tests(${tests_exe}) diff --git a/version.txt b/version.txt index 5faa42c8a89ea0f5ab797259dce62bb190eb28c6..69367fd08f3ce302151ebc9779193d517dfa32de 100644 --- a/version.txt +++ b/version.txt @@ -1,2 +1,2 @@ -0.2.0 +0.3.0