1- # Specify the filename to search for
2- set (FILENAME "gpu.h" )
3-
41get_filename_component (PROJECT_ROOT ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY )
52get_filename_component (PROJECT_ROOT ${PROJECT_ROOT} DIRECTORY )
63
74# Construct potential paths
85set (FILEPATH_CURRENT_DIR "${CMAKE_CURRENT_SOURCE_DIR} /${FILENAME} " )
96set (FILEPATH_PROJECT_ROOT "${PROJECT_ROOT} /${FILENAME} " )
107
8+ # Include file finding utility script
9+ include ("${CMAKE_CURRENT_SOURCE_DIR} /cmake/find_gpu.cmake" )
10+
1111# 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 ()
2123endif ()
2224
2325# Define architecture and build type directories or file names
@@ -43,6 +45,15 @@ target_include_directories(gpu INTERFACE ${TARGET_FILE_PATH})
4345# Add headers webgpu.h
4446target_include_directories (wgpu
4547 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+
4657if (WIN32 )
4758 set (DLL_PATH
4859 "${TARGET_FILE_PATH} /third_party/lib/libdawn_${ARCH} _${BUILD_TYPE} .dll" )
@@ -55,11 +66,9 @@ if(WIN32)
5566else ()
5667 find_library (LIBDAWN dawn PATHS "${TARGET_FILE_PATH} /third_party/lib" )
5768 if (LIBDAWN)
58- message (STATUS "Found libdawn: ${LIBDAWN} " )
59- # Link against libdawn
69+ message (STATUS "Found libdawn: ${LIBDAWN} " ) # Link against libdawn
6070 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()
6372 message ("libdawn not found, try downloading from the release" )
6473 if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" )
6574 set (libdawn_ext "dylib" )
7584 find_library (LIBDAWN dawn REQUIRED
7685 PATHS "${TARGET_FILE_PATH} /third_party/lib" )
7786 if (LIBDAWN)
78- message (STATUS "Found libdawn: ${LIBDAWN} " )
79- # Link against libdawn
87+ message (STATUS "Found libdawn: ${LIBDAWN} " ) # Link against libdawn
8088 target_link_libraries (webgpulib INTERFACE ${LIBDAWN} )
8189 else ()
8290 message (FATAL_ERROR "libdawn not found" )
0 commit comments