-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
73 lines (58 loc) · 1.97 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
70
71
72
73
include(FetchContent)
cmake_minimum_required(VERSION 3.5)
project(bsp-to-taco)
add_library(bsp-to-taco SHARED)
cmake_policy(SET CMP0079 NEW)
set(CMAKE_C_STANDARD 11)
#set(CMAKE_CXX_STANDARD 20)
#set(CMAKE_C_FLAGS "-O3 -march=native")
set(CMAKE_CXX_FLAGS "-O3 -march=native -Wall -Wno-narrowing -fPIC")
add_subdirectory(include)
add_subdirectory(src)
#### binsparse reference implementation configuration
FetchContent_Declare(
binsparse
GIT_REPOSITORY https://github.com/junikimm717/binsparse-reference-c
GIT_TAG main
)
FetchContent_MakeAvailable(binsparse)
target_include_directories(bsp-to-taco PUBLIC ${binsparse_SOURCE_DIR}/include)
#### taco configuration
option(CUDA "Build for NVIDIA GPU (CUDA must be preinstalled)" OFF)
option(PYTHON "Build TACO for python environment" OFF)
option(OPENMP "Build with OpenMP execution support" OFF)
option(COVERAGE "Build with code coverage analysis" OFF)
set(TACO_FEATURE_CUDA 0)
set(TACO_FEATURE_OPENMP 0)
set(TACO_FEATURE_PYTHON 0)
if(CUDA)
message("-- Searching for CUDA Installation")
find_package(CUDA REQUIRED)
add_definitions(-DCUDA_BUILT)
set(TACO_FEATURE_CUDA 1)
endif(CUDA)
if(OPENMP)
message("-- Will use OpenMP for parallel execution")
add_definitions(-DUSE_OPENMP)
set(TACO_FEATURE_OPENMP 1)
endif(OPENMP)
if(PYTHON)
message("-- Will build Python extension")
add_definitions(-DPYTHON)
set(TACO_FEATURE_PYTHON 1)
endif(PYTHON)
FetchContent_Declare(
taco
GIT_REPOSITORY https://github.com/junikimm717/taco
GIT_TAG master
)
FetchContent_MakeAvailable(taco)
configure_file(${taco_SOURCE_DIR}/include/taco/version.h.in ${taco_SOURCE_DIR}/include/taco/version.h @ONLY)
target_include_directories(${PROJECT_NAME} PUBLIC ${taco_SOURCE_DIR}/include)
#### Project Configuration
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_BINARY_DIR}/include)
target_link_libraries(${PROJECT_NAME} PUBLIC binsparse-rc taco)
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
add_subdirectory(examples)
add_subdirectory(test)
endif()