diff --git a/CMakeLists.txt b/CMakeLists.txt index 538ce1cfcd57add1673d76ec98e843ce31912d36..1906bf3706cbf187fb2040933db8da4ef90598dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,16 +5,19 @@ project( DESCRIPTION "Tensor-Core Correlator" VERSION 0.5 HOMEPAGE_URL https://git.astron.nl/RD/tensor-core-correlator - LANGUAGES CXX CUDA) + LANGUAGES CXX CUDA +) set(CMAKE_CXX_STANDARD 17) option(BUILD_SHARED_LIBS "Create shared libraries" True) option(BUILD_TESTING "Build tests" False) if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE "Release" CACHE STRING "CMake build type" FORCE) - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS - "Debug" "Release") + set(CMAKE_BUILD_TYPE + "Release" + CACHE STRING "CMake build type" FORCE + ) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release") endif() find_package(CUDAToolkit REQUIRED) @@ -23,7 +26,8 @@ include(FetchContent) FetchContent_Declare( cudawrappers GIT_REPOSITORY https://github.com/nlesc-recruit/cudawrappers - GIT_TAG 0.6.0) + GIT_TAG 0.6.0 +) FetchContent_MakeAvailable(cudawrappers) # Set up libtcc @@ -40,9 +44,11 @@ include(CMakePackageConfigHelpers) write_basic_package_version_file( ${PROJECT_NAME}-config-version.cmake VERSION ${cudawrappers_VERSION} - COMPATIBILITY AnyNewerVersion) + COMPATIBILITY AnyNewerVersion +) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} +) # --- auto-ignore build directory if(NOT EXISTS ${PROJECT_BINARY_DIR}/.gitignore) diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index aa1150672422c49128f521786f8a5747d6063dc8..cdeba691a11e65b79417db4bc9f2cec7cb5a5f99 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -6,4 +6,4 @@ find_package(cudawrappers REQUIRED) find_package(libtcc REQUIRED) add_executable(${PROJECT_NAME} example.cpp) -target_link_libraries(${PROJECT_NAME} tcc cudawrappers::cu cudawrappers::nvrtc) \ No newline at end of file +target_link_libraries(${PROJECT_NAME} tcc cudawrappers::cu cudawrappers::nvrtc) diff --git a/libtcc/CMakeLists.txt b/libtcc/CMakeLists.txt index 3658c4fdbaa7ea850c91e71999145b09db184782..f28f6335c190b83a1c00216821873e2c559b7173 100644 --- a/libtcc/CMakeLists.txt +++ b/libtcc/CMakeLists.txt @@ -3,11 +3,14 @@ add_library(tcc) # Add source files target_sources(tcc PRIVATE Correlator.cc CorrelatorKernel.cc Kernel.cc) # Add public headers -set_target_properties(tcc PROPERTIES PUBLIC_HEADER "Correlator.h;CorrelatorKernel.h;Kernel.h") +set_target_properties( + tcc PROPERTIES PUBLIC_HEADER "Correlator.h;CorrelatorKernel.h;Kernel.h" +) # Add includes target_include_directories( tcc PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> - $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}>) + $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}> +) # Add links target_link_libraries(tcc PRIVATE cudawrappers::cu cudawrappers::nvrtc) target_embed_source(tcc kernel/TCCorrelator.cu) @@ -16,8 +19,9 @@ install( TARGETS tcc EXPORT ${PROJECT_NAME}-config # export tcc cmake targets COMPONENT tcc - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME} +) # Install tcc cmake targets -install( - EXPORT ${PROJECT_NAME}-config - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) \ No newline at end of file +install(EXPORT ${PROJECT_NAME}-config + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} +) diff --git a/test/CorrelatorTest/CMakeLists.txt b/test/CorrelatorTest/CMakeLists.txt index d64d95a6e8d5488045725267e0a1fd993c537d78..89098ba5b489e07e5bdf7ac96486fbe629625a95 100644 --- a/test/CorrelatorTest/CMakeLists.txt +++ b/test/CorrelatorTest/CMakeLists.txt @@ -3,8 +3,9 @@ find_package(OpenMP REQUIRED) add_executable(CorrelatorTest) target_sources(CorrelatorTest PRIVATE CorrelatorTest.cc Options.cc) target_include_directories(CorrelatorTest PRIVATE ${CMAKE_SOURCE_DIR}) -target_link_libraries(CorrelatorTest PRIVATE tcc Record UnitTest - OpenMP::OpenMP_CXX) +target_link_libraries( + CorrelatorTest PRIVATE tcc Record UnitTest OpenMP::OpenMP_CXX +) # Define various combinations of parameters to test: # b: nrBits must be 4, 8, or 16 @@ -39,6 +40,6 @@ foreach(idx 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761) add_test(NAME CorrelatorTest-nrReceivers-${idx} - COMMAND CorrelatorTest -b 16 -c 1 -n ${idx} -N 32 -r 1 -R 1 -t 8) + COMMAND CorrelatorTest -b 16 -c 1 -n ${idx} -N 32 -r 1 -R 1 -t 8 + ) endforeach() - diff --git a/test/OpenCLCorrelatorTest/CMakeLists.txt b/test/OpenCLCorrelatorTest/CMakeLists.txt index f4092e0ca01f56fc77e1c45e80a4e5e1dae16df9..84117b5edf3259e3350ac297af1fd786f642f4c2 100644 --- a/test/OpenCLCorrelatorTest/CMakeLists.txt +++ b/test/OpenCLCorrelatorTest/CMakeLists.txt @@ -2,20 +2,18 @@ project(OpenCLCorrelatorTest) find_package(OpenMP REQUIRED) find_package(OpenCL) -if (${OpenCL_FOUND}) -set(KERNEL_SOURCE_FILE "${CMAKE_SOURCE_DIR}/libtcc/kernel/TCCorrelator.cu") -add_executable(${PROJECT_NAME}) -target_sources(${PROJECT_NAME} PRIVATE OpenCLCorrelatorTest.cc) -target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR} - ${OpenCL_INCLUDE_DIRS}) -target_link_libraries(${PROJECT_NAME} PRIVATE ${OpenCL_LIBRARIES} - OpenMP::OpenMP_CXX) -target_compile_definitions(${PROJECT_NAME} PRIVATE KERNEL_SOURCE_FILE="${KERNEL_SOURCE_FILE}") +if(${OpenCL_FOUND}) + set(KERNEL_SOURCE_FILE "${CMAKE_SOURCE_DIR}/libtcc/kernel/TCCorrelator.cu") + add_executable(${PROJECT_NAME}) + target_sources(${PROJECT_NAME} PRIVATE OpenCLCorrelatorTest.cc) + target_include_directories( + ${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR} ${OpenCL_INCLUDE_DIRS} + ) + target_link_libraries( + ${PROJECT_NAME} PRIVATE ${OpenCL_LIBRARIES} OpenMP::OpenMP_CXX + ) + target_compile_definitions( + ${PROJECT_NAME} PRIVATE KERNEL_SOURCE_FILE="${KERNEL_SOURCE_FILE}" + ) -# FIXME: The OpenCLCorrelatorTest doesn't work -# add_test( -# NAME OpenCLCorrelatorTest -# COMMAND OpenCLCorrelatorTest -# # Specify working directory so the kernel code is found -# WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) -endif() \ No newline at end of file +endif()