forked from ROCm/rpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
64 lines (50 loc) · 1.98 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
cmake_minimum_required(VERSION 3.5)
project(amd_rpp VERSION 0.1)
# Cmake checks and setups
if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
message(FATAL_ERROR "In-source builds are not allowed. Invoke cmake from build directory")
endif ()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
# Set Compilers
# set(COMPILER_FOR_OPENCL /usr/bin/g++)
set(COMPILER_FOR_OPENCL /opt/rocm/bin/hipcc)
#set(COMPILER_FOR_OPENCL /usr/bin/g++)
set(COMPILER_FOR_HIP /opt/rocm/bin/hipcc)
set(COMPILER_FOR_HIPOC /opt/rocm/bin/hipcc)
add_library(${PROJECT_NAME} SHARED include/rpp.h)
# Find required packages
find_package(OpenCL REQUIRED) # OpenCL_INCLUDE_DIRS, OpenCL_LIBRARIES
#TODO: Future Work Build list can be set from CLI ; CACHED and to be used
set( MODULES_LIST "imgaug")
foreach (MOD_NAME ${MODULES_LIST})
add_subdirectory(${CMAKE_SOURCE_DIR}/src/${MOD_NAME})
endforeach(MOD_NAME)
# Backend Specific Settings
if( "${BACKEND}" STREQUAL "HIP")
set(CMAKE_CXX_COMPILER ${COMPILER_FOR_HIP})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -lm")
#set( LINK_LIST /opt/rocm/lib/libhip_hcc.so /opt/rocm/lib/libhip_hcc.so ${LINK_LIST})
link_libraries(-amdgpu-target=gfx803 -amdgpu-target=gfx900 -Wno-unused-command-line-argument)
elseif( "${BACKEND}" STREQUAL "OCL")
set(CMAKE_CXX_COMPILER ${COMPILER_FOR_OPENCL})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -lm")
set( LINK_LIST ${OpenCL_LIBRARIES} ${LINK_LIST})
set( INCLUDE_LIST ${OpenCL_INCLUDE_DIRS} ${INCLUDE_LIST})
endif()
# target setting
set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE CXX)
target_link_libraries(${PROJECT_NAME} ${MODULES_LIST} ${LINK_LIST})
target_include_directories(${PROJECT_NAME}
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/src/include
${INCLUDE_LIST}
)
# Installation
install (TARGETS amd_rpp
LIBRARY DESTINATION /opt/rocm/rpp/lib
)
install (DIRECTORY include
DESTINATION /opt/rocm/rpp/
)