forked from microsoft/DirectML
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
40 lines (31 loc) · 1.13 KB
/
Copy pathCMakeLists.txt
File metadata and controls
40 lines (31 loc) · 1.13 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
cmake_minimum_required(VERSION 3.15)
message("DML_PATH=${DML_PATH}")
message("DMLX_PATH=${DMLX_PATH}")
project(pydirectml)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED on)
if(MSVC)
if(MSVC_VERSION GREATER_EQUAL 1920)
# Use C++17 on VS 16.0 (aka 2019) and later but with relaxed conformance check
set(PYBIND11_CPP_STANDARD /std:c++17 /permissive)
else()
# Use the latest C++ standard available for newer features
set(PYBIND11_CPP_STANDARD /std:c++latest)
endif()
# ssize_t does not exist for MSVC but SSIZE_T is available in BaseTsd.
add_definitions(-Dssize_t=SSIZE_T)
set(CMAKE_REQUIRED_DEFINITIONS -Dssize_t=SSIZE_T)
set(CMAKE_EXTRA_INCLUDE_FILES BaseTsd.h)
endif()
add_subdirectory(gpgmm)
add_subdirectory(pybind11)
pybind11_add_module(
pydirectml
src/util.cpp
src/module.cpp
src/device.cpp
)
target_compile_options(pydirectml PRIVATE /W4 /WX)
target_include_directories(pydirectml PRIVATE pybind11/include gpgmm/src/include gpgmm/ ${DML_PATH}/include ${DMLX_PATH})
target_link_directories(pydirectml PRIVATE ${DML_PATH}/bin/x64-win)
target_link_libraries(pydirectml PRIVATE gpgmm dxgi.lib d3d12.lib directml.lib)