-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCMakeLists.txt
42 lines (33 loc) · 1.22 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
cmake_minimum_required(VERSION 3.9)
project(SRCNN_cpp LANGUAGES CXX)
set(i_want_openmp OFF)
set(i_want_avx ON)
set(EXECUTABLE_OUTPUT_PATH "..")
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Ofast -ftree-vectorize -march=native -mavx -mfma")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Ofast -march=native -mtune=native -mavx2")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DIM2COL=1")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBLOCK_SIZE_X=512")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBLOCK_SIZE_Y=512")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBLOCK_SIZE_Z=512")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSEFLOAT=1")
if(i_want_avx)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DISX86=1")
endif()
# include OpenCV
find_package(OpenCV REQUIRED)
# include OpenMP
find_package(OpenMP)
include_directories(src)
add_executable(SRCNN_cpp
main.cpp
src/srcnn.cpp
src/gaussian.cpp)
target_link_libraries(SRCNN_cpp ${OpenCV_LIBS})
if(OpenMP_CXX_FOUND AND i_want_openmp)
message("SRCNN_cpp is built with OpenCV and OpenMP is enabled.")
target_link_libraries(SRCNN_cpp OpenMP::OpenMP_CXX)
else()
message("SRCNN_cpp is built with only OpenCV.")
endif()