Skip to content
Snippets Groups Projects
Commit 403f963c authored by Bram Veenboer's avatar Bram Veenboer
Browse files

Apply cmake-format

parent 0e10c195
No related branches found
No related tags found
1 merge request!5Use CMake and upgrade to cudawrappers 0.6.0
......@@ -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)
......
......@@ -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}
)
......@@ -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()
......@@ -6,16 +6,14 @@ 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}")
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()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment