-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
69 lines (59 loc) · 2.06 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#! CMake initialisation.
cmake_minimum_required(VERSION 3.1)
if (POLICY CMP0045)
cmake_policy(SET CMP0045 NEW)
endif()
if (POLICY CMP0068)
cmake_policy(SET CMP0068 OLD)
endif()
#! Declare the CMake project.
project(grid_visibilities C CXX)
#! Find Threads.
find_package(Threads REQUIRED)
#! Find OpenCL
find_package(OpenCL REQUIRED)
INCLUDE_DIRECTORIES(${OPENCL_INCLUDE_DIR})
set(AOCL_COMPILE_CONFIG "-I/opt/intelFPGA_pro/17.1/hld/host/include")
set(AOCL_LINK_CONFIG "-L/opt/intelFPGA_pro/17.1/hld/board/a10_ref/linux64/lib -L/opt/intelFPGA_pro/17.1/hld/host/linux64/lib -Wl,--no-as-needed -lalteracl -laltera_a10_ref_mmd -lelf")
#! Compiler flags.
if ("${CMAKE_C_COMPILER_ID}" MATCHES ".*Clang.*"
OR "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
# Enable all warnings.
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -fPIC ${AOCL_COMPILE_CONFIG} ${AOCL_LINK_CONFIG}")
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
endif()
#! Build type detection.
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
get_filename_component(dirname ${CMAKE_BINARY_DIR} NAME)
if (${dirname} MATCHES "dbg" OR ${dirname} MATCHES "debug")
set(CMAKE_BUILD_TYPE Debug)
else()
set(CMAKE_BUILD_TYPE Release)
endif()
endif()
#! Build cfitsio library.
add_subdirectory(cfitsio-3.41)
#! Build oskar_binary library.
add_subdirectory(utils/binary)
#! Build test visibility gridder.
include_directories(${PROJECT_SOURCE_DIR})
include_directories(${PROJECT_SOURCE_DIR}/utils)
include_directories(${PROJECT_SOURCE_DIR}/cfitsio-3.41)
include_directories(${PROJECT_SOURCE_DIR}/AOCL_UTILS)
set(read_vis_SRC
# List of source files to compile.
utils/check_value.c
utils/oskar_thread.c
utils/oskar_timer.c
utils/oskar_grid_weights.c
utils/read_kernel.c
utils/read_vis.c
utils/write_fits_cube.c
oskar_grid_wproj.c
main.cpp
AOCL_UTILS/opencl.cpp
AOCL_UTILS/options.cpp
)
add_executable(main ${read_vis_SRC})
target_link_libraries(main cfitsio oskar_binary m Threads::Threads)