1
- # Specify the filename to search for
2
- set (FILENAME "gpu.h" )
3
-
4
1
get_filename_component (PROJECT_ROOT ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY )
5
2
get_filename_component (PROJECT_ROOT ${PROJECT_ROOT} DIRECTORY )
6
3
7
4
# Construct potential paths
8
5
set (FILEPATH_CURRENT_DIR "${CMAKE_CURRENT_SOURCE_DIR} /${FILENAME} " )
9
6
set (FILEPATH_PROJECT_ROOT "${PROJECT_ROOT} /${FILENAME} " )
10
7
8
+ # Include file finding utility script
9
+ include ("${CMAKE_CURRENT_SOURCE_DIR} /cmake/find_gpu.cmake" )
10
+
11
11
# Check if the file exists in the current directory
12
- if (EXISTS ${FILEPATH_CURRENT_DIR} )
13
- set (TARGET_FILE_PATH ${CMAKE_CURRENT_SOURCE_DIR} )
14
- elseif (EXISTS ${FILEPATH_PROJECT_ROOT} )
15
- set (TARGET_FILE_PATH ${PROJECT_ROOT} )
16
- else ()
17
- message (
18
- FATAL_ERROR
19
- "File ${FILENAME} not found in either ${CMAKE_CURRENT_SOURCE_DIR} or ${CMAKE_CURRENT_SOURCE_DIR} /../../"
20
- )
12
+ find_project_root(${CMAKE_CURRENT_SOURCE_DIR} ${FILEPATH_CURRENT_DIR}
13
+ ${TARGET_FILE_PATH} )
14
+ if ("${TARGET_FILE_PATH} " STREQUAL "" )
15
+ find_project_root(${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_ROOT}
16
+ ${TARGET_FILE_PATH} )
17
+ if ("${TARGET_FILE_PATH} " STREQUAL "" )
18
+ message (
19
+ FATAL_ERROR
20
+ "File ${FILENAME} not found in either ${CMAKE_CURRENT_SOURCE_DIR} or ${CMAKE_CURRENT_SOURCE_DIR} /../../"
21
+ )
22
+ endif ()
21
23
endif ()
22
24
23
25
# Define architecture and build type directories or file names
@@ -43,6 +45,15 @@ target_include_directories(gpu INTERFACE ${TARGET_FILE_PATH})
43
45
# Add headers webgpu.h
44
46
target_include_directories (wgpu
45
47
INTERFACE ${TARGET_FILE_PATH} /third_party/headers)
48
+ # FetchContent_Declare( DAWN_EXT GIT_REPOSITORY
49
+ # "https://dawn.googlesource.com/dawn" GIT_TAG "main" INSTALL_DIR
50
+ # "${TARGET_FILE_PATH}/third_party/dawn" CONFIGURE_COMMAND "python3
51
+ # tools/fetch_dawn_dependencies.py" CMAKE_ARGS "-DDAWN_ENABLE_INSTALL=ON
52
+ # -DDAWN_BUILD_MONOLITHIC_LIBRARY=ON -DCMAKE_BUILD_TYPE=Debug
53
+ # -DBUILD_SAMPLES=OFF" )
54
+
55
+ # FetchContent_MakeAvailable(DAWN_EXT)
56
+
46
57
if (WIN32 )
47
58
set (DLL_PATH
48
59
"${TARGET_FILE_PATH} /third_party/lib/libdawn_${ARCH} _${BUILD_TYPE} .dll" )
@@ -55,11 +66,9 @@ if(WIN32)
55
66
else ()
56
67
find_library (LIBDAWN dawn PATHS "${TARGET_FILE_PATH} /third_party/lib" )
57
68
if (LIBDAWN)
58
- message (STATUS "Found libdawn: ${LIBDAWN} " )
59
- # Link against libdawn
69
+ message (STATUS "Found libdawn: ${LIBDAWN} " ) # Link against libdawn
60
70
target_link_libraries (webgpulib INTERFACE ${LIBDAWN} )
61
- # if not found, try download from release
62
- else ()
71
+ # if not found, try download from release else()
63
72
message ("libdawn not found, try downloading from the release" )
64
73
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" )
65
74
set (libdawn_ext "dylib" )
75
84
find_library (LIBDAWN dawn REQUIRED
76
85
PATHS "${TARGET_FILE_PATH} /third_party/lib" )
77
86
if (LIBDAWN)
78
- message (STATUS "Found libdawn: ${LIBDAWN} " )
79
- # Link against libdawn
87
+ message (STATUS "Found libdawn: ${LIBDAWN} " ) # Link against libdawn
80
88
target_link_libraries (webgpulib INTERFACE ${LIBDAWN} )
81
89
else ()
82
90
message (FATAL_ERROR "libdawn not found" )
0 commit comments