mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-18 22:33:33 +00:00
19a39a0413
Adds src/ifcviewer-wgpu/ and src/ifcviewer-wgpu-minimal/ behind a new BUILD_BONSAIVIEWER_WGPU option (default OFF), gated independently of BUILD_BONSAIVIEWER. Stage 1 brings up a Qt window with a wgpu-native v29 surface (X11) and clears to the background colour — no rendering beyond that yet. Mirrors the lifecycle of the GL ViewportWindow so subsequent stages (vertex-pulling renderer, pick, cull, HiZ, overlay) slot in without restructuring the host. wgpu-native is fetched as a pre-built binary release via FetchContent; its .so SONAME is patched in at configure time so dependents get a clean DT_NEEDED. The X11 native handle is obtained via the public QNativeInterface::QX11Application API; Wayland and macOS/Windows surface creation are stubbed with explicit "not wired yet" warnings. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
50 lines
2.4 KiB
CMake
50 lines
2.4 KiB
CMake
################################################################################
|
|
# #
|
|
# This file is part of IfcOpenShell. #
|
|
# #
|
|
# IfcOpenShell is free software: you can redistribute it and/or modify #
|
|
# it under the terms of the Lesser GNU General Public License as published by #
|
|
# the Free Software Foundation, either version 3.0 of the License, or #
|
|
# (at your option) any later version. #
|
|
# #
|
|
# IfcOpenShell is distributed in the hope that it will be useful, #
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
|
# Lesser GNU General Public License for more details. #
|
|
# #
|
|
# You should have received a copy of the Lesser GNU General Public License #
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
|
|
# #
|
|
################################################################################
|
|
|
|
message("Running CMakeLists.txt in /src/ifcviewer-wgpu-minimal")
|
|
|
|
find_package(Qt${QT_VERSION} COMPONENTS Widgets REQUIRED PATHS ${QT_DIR})
|
|
|
|
file(GLOB IFCVIEWER_WGPU_MIN_CPP_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
|
|
|
|
add_executable(IfcViewerWgpuMinimal ${IFCVIEWER_WGPU_MIN_CPP_FILES})
|
|
|
|
set_target_properties(IfcViewerWgpuMinimal PROPERTIES
|
|
AUTOMOC ON
|
|
WIN32_EXECUTABLE ON
|
|
MACOSX_BUNDLE ON
|
|
)
|
|
|
|
target_link_libraries(IfcViewerWgpuMinimal PRIVATE
|
|
IfcViewerWgpu
|
|
Qt${QT_VERSION}::Widgets
|
|
)
|
|
|
|
# Pin the build-tree rpath so the executable finds libwgpu_native.so when
|
|
# run directly out of build-viewer-wgpu/. The patched SONAME means DT_NEEDED
|
|
# is just the basename, so a single rpath entry suffices.
|
|
if(UNIX AND NOT APPLE AND WGPU_NATIVE_LIB_DIR)
|
|
set_target_properties(IfcViewerWgpuMinimal PROPERTIES
|
|
BUILD_RPATH "${WGPU_NATIVE_LIB_DIR}"
|
|
)
|
|
endif()
|
|
|
|
install(TARGETS IfcViewerWgpuMinimal EXPORT ${IFCOPENSHELL_EXPORT_TARGETS})
|
|
ifcopenshell_deploy_qt_runtime(IfcViewerWgpuMinimal)
|