-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
63 lines (52 loc) · 2.6 KB
/
CMakeLists.txt
File metadata and controls
63 lines (52 loc) · 2.6 KB
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
cmake_minimum_required (VERSION 3.4)
set (CL_TARGET_OPENCL_VERSION 2.2)
set (CMAKE_CXX_STANDARD 17)
project ("XEngine: Framework for heterogeneous Deep Learning with oneDNN")
option (BUILD_TESTS "Build the testing tree." ON)
set (DNNL_ROOT_DIR CACHE PATH "Intel oneDNN (DNNL) directory")
set (DNNL_INCLUDE_DIR "${DNNL_ROOT_DIR}/include")
find_library (DNNL_LIBRARY dnnl HINTS "${DNNL_ROOT_DIR}/lib/" "${DNNL_ROOT_DIR}/lib64/")
set (ONEAPI_ROOT_DIR CACHE PATH "Intel oneAPI Base Toolkit directory")
set (ONEAPI_PREFIX "${ONEAPI_ROOT_DIR}/compiler/latest/linux/")
set (SYCL_INCLUDE_DIR "${ONEAPI_PREFIX}/include")
find_library (SYCL_LIBRARY sycl HINTS "${ONEAPI_PREFIX}/lib" "${ONEAPI_PREFIX}/lib64")
option(HAS_CBC "Compile xengine with CBC support." OFF)
if (HAS_CBC)
message("Solver: CBC")
set (CBC_ROOT_DIR CACHE PATH "CBC ILP-Solver directory")
set (CBC_INCLUDE_DIR "${CBC_ROOT_DIR}/include/coin")
set (CBC_EXAMPLES_DIR "${CBC_ROOT_DIR}/../Cbc/examples")
set (CBC_LIB_DIR "${CBC_ROOT_DIR}/lib")
find_library (OSI_LIBRARY Osi HINTS "${CBC_LIB_DIR}")
find_library (CBC_LIBRARY Cbc HINTS "${CBC_LIB_DIR}")
find_library (CGL_LIBRARY Cgl HINTS "${CBC_LIB_DIR}")
find_library (CLP_LIBRARY Clp HINTS "${CBC_LIB_DIR}")
find_library (OSI_CLP_LIBRARY OsiClp HINTS "${CBC_LIB_DIR}")
find_library (COIN_UTILS_LIBRARY CoinUtils HINTS "${CBC_LIB_DIR}")
find_library (CBC_SOLVER_LIBRARY CbcSolver HINTS "${CBC_LIB_DIR}")
set (CBC_LIBRARIES ${OSI_LIBRARY} ${CBC_LIBRARY} ${CGL_LIBRARY} ${CLP_LIBRARY} ${OSI_CLP_LIBRARY} ${COIN_UTILS_LIBRARY} ${CBC_SOLVER_LIBRARY})
endif()
option(HAS_GUROBI "Compile xengine with Gurobi support." OFF)
if (HAS_GUROBI)
message("Solver: Gurobi")
set (GUROBI_ROOT_DIR CACHE PATH "Gurobi ILP-Solver directory")
set (GUROBI_INCLUDE_DIR "${GUROBI_ROOT_DIR}/include")
find_library (GUROBI_LIBRARY_CPP gurobi_c++ HINTS "${GUROBI_ROOT_DIR}/lib")
find_library (GUROBI_LIBRARY_91 gurobi91 HINTS "${GUROBI_ROOT_DIR}/lib")
set (GUROBI_LIBRARIES ${GUROBI_LIBRARY_CPP} ${GUROBI_LIBRARY_91})
endif()
if (NOT HAS_CBC AND NOT HAS_GUROBI)
message("WARNING: No ILP-Solver was given. Writing MPS-files only.")
endif()
option(protobuf_BUILD_TESTS "" OFF)
option(protobuf_BUILD_SHARED_LIBS "" ON)
add_subdirectory(external/Protobuf/cmake)
add_subdirectory(external/ONNX)
set(ONNX_PROTO_LIBRARY onnx_proto)
set(ONNX_LIBRARY onnx)
set (WARN_FLAGS "-Wall -Wextra -Wnon-virtual-dtor -Wcast-align -Wunused -Woverloaded-virtual -Wpedantic")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DONNX_ML=1 -DONNX_NAMESPACE=onnx ${WARN_FLAGS}")
find_package(PNG)
add_subdirectory(examples)
add_subdirectory(src)
add_subdirectory(test)