Save FreeCAD WebAssembly development state
Some checks failed
FreeCAD master CI / Prepare (push) Has been cancelled
FreeCAD master CI / Pixi (push) Has been cancelled
FreeCAD master CI / Ubuntu (push) Has been cancelled
FreeCAD master CI / Windows (push) Has been cancelled
FreeCAD master CI / Lint (push) Has been cancelled
FreeCAD master CI / WrapUp (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
Some checks failed
FreeCAD master CI / Prepare (push) Has been cancelled
FreeCAD master CI / Pixi (push) Has been cancelled
FreeCAD master CI / Ubuntu (push) Has been cancelled
FreeCAD master CI / Windows (push) Has been cancelled
FreeCAD master CI / Lint (push) Has been cancelled
FreeCAD master CI / WrapUp (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
This commit is contained in:
@@ -12,6 +12,8 @@ set(FREECAD_WEB_QT_ROOT "${FREECAD_WEB_DEPENDENCY_ROOT}/qt-install" CACHE PATH
|
||||
"Qt Emscripten installation prefix")
|
||||
set(FREECAD_WEB_PYTHON_ROOT "${FREECAD_WEB_DEPENDENCY_ROOT}/python-install" CACHE PATH
|
||||
"CPython Emscripten installation prefix")
|
||||
set(FREECAD_WEB_PYTHON_BUILD_ROOT "${FREECAD_WEB_DEPENDENCY_ROOT}/python-probe" CACHE PATH
|
||||
"CPython Emscripten build tree containing extension archives")
|
||||
set(FREECAD_WEB_ICU_ROOT "${FREECAD_WEB_DEPENDENCY_ROOT}/icu-install" CACHE PATH
|
||||
"ICU 68.2 Emscripten installation prefix")
|
||||
set(FREECAD_WEB_ZLIB_ROOT "${FREECAD_WEB_DEPENDENCY_ROOT}/zlib-install" CACHE PATH
|
||||
@@ -26,6 +28,53 @@ set(FREECAD_WEB_CURL_ROOT "${FREECAD_WEB_DEPENDENCY_ROOT}/curl-install" CACHE PA
|
||||
"CURL 8.8.0 Emscripten installation prefix")
|
||||
set(FREECAD_WEB_HOST_PYTHON_EXECUTABLE "" CACHE FILEPATH
|
||||
"Native Python used for configure-time generators in a Web build")
|
||||
set(FREECAD_WEB_PTHREAD_DEPENDENCY_ROOT "" CACHE PATH
|
||||
"Optional root containing atomics-tagged pthread Web dependencies")
|
||||
|
||||
# The regular Web dependency bundle intentionally omits QtGui/QtWidgets. A
|
||||
# native TechDraw build needs the separately staged Qt closure; select it when
|
||||
# the caller has not supplied a usable native Qt root. Keep an explicit
|
||||
# FREECAD_WEB_QT_ROOT override authoritative so ordinary Web builds retain the
|
||||
# lightweight dependency set.
|
||||
if(FREECAD_WEB_ENABLE_TECHDRAW_NATIVE AND
|
||||
NOT EXISTS "${FREECAD_WEB_QT_ROOT}/lib/cmake/Qt5Gui/Qt5GuiConfig.cmake" AND
|
||||
EXISTS "${FREECAD_WEB_DEPENDENCY_ROOT}/qt-techdraw-install/lib/cmake/Qt5Gui/Qt5GuiConfig.cmake")
|
||||
set(FREECAD_WEB_QT_ROOT "${FREECAD_WEB_DEPENDENCY_ROOT}/qt-techdraw-install" CACHE PATH
|
||||
"Qt Emscripten installation prefix" FORCE)
|
||||
message(STATUS "TechDraw native: using staged QtGui closure at ${FREECAD_WEB_QT_ROOT}")
|
||||
endif()
|
||||
|
||||
if(FREECAD_WEB_ENABLE_TECHDRAW_NATIVE)
|
||||
if(NOT FREECAD_WEB_PTHREAD_DEPENDENCY_ROOT AND
|
||||
EXISTS "${FREECAD_WEB_DEPENDENCY_ROOT}/occt-pthread-install" AND
|
||||
EXISTS "${FREECAD_WEB_DEPENDENCY_ROOT}/python-pthread-install" AND
|
||||
EXISTS "${FREECAD_WEB_DEPENDENCY_ROOT}/yaml-pthread-install" AND
|
||||
EXISTS "${FREECAD_WEB_DEPENDENCY_ROOT}/icu-pthread-install" AND
|
||||
EXISTS "${FREECAD_WEB_DEPENDENCY_ROOT}/boost-pthread-install")
|
||||
set(FREECAD_WEB_PTHREAD_DEPENDENCY_ROOT "${FREECAD_WEB_DEPENDENCY_ROOT}" CACHE PATH
|
||||
"Root containing atomics-tagged pthread Web dependencies" FORCE)
|
||||
endif()
|
||||
if(FREECAD_WEB_PTHREAD_DEPENDENCY_ROOT AND
|
||||
EXISTS "${FREECAD_WEB_PTHREAD_DEPENDENCY_ROOT}/occt-pthread-install" AND
|
||||
EXISTS "${FREECAD_WEB_PTHREAD_DEPENDENCY_ROOT}/python-pthread-install" AND
|
||||
EXISTS "${FREECAD_WEB_PTHREAD_DEPENDENCY_ROOT}/yaml-pthread-install" AND
|
||||
EXISTS "${FREECAD_WEB_PTHREAD_DEPENDENCY_ROOT}/icu-pthread-install" AND
|
||||
EXISTS "${FREECAD_WEB_PTHREAD_DEPENDENCY_ROOT}/boost-pthread-install")
|
||||
message(STATUS "TechDraw native: using atomics-tagged pthread dependency closure")
|
||||
set(FREECAD_WEB_OCCT_ROOT "${FREECAD_WEB_PTHREAD_DEPENDENCY_ROOT}/occt-pthread-install" CACHE PATH
|
||||
"OpenCASCADE pthread Web installation prefix" FORCE)
|
||||
set(FREECAD_WEB_PYTHON_ROOT "${FREECAD_WEB_PTHREAD_DEPENDENCY_ROOT}/python-pthread-install" CACHE PATH
|
||||
"CPython pthread Web installation prefix" FORCE)
|
||||
set(FREECAD_WEB_PYTHON_BUILD_ROOT "${FREECAD_WEB_PTHREAD_DEPENDENCY_ROOT}/python-pthread" CACHE PATH
|
||||
"CPython pthread Web build tree" FORCE)
|
||||
set(FREECAD_WEB_YAML_ROOT "${FREECAD_WEB_PTHREAD_DEPENDENCY_ROOT}/yaml-pthread-install" CACHE PATH
|
||||
"yaml-cpp pthread Web installation prefix" FORCE)
|
||||
set(FREECAD_WEB_ICU_ROOT "${FREECAD_WEB_PTHREAD_DEPENDENCY_ROOT}/icu-pthread-install" CACHE PATH
|
||||
"ICU pthread Web installation prefix" FORCE)
|
||||
set(FREECAD_WEB_BOOST_ROOT "${FREECAD_WEB_PTHREAD_DEPENDENCY_ROOT}/boost-pthread-install" CACHE PATH
|
||||
"Boost pthread Web installation prefix" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
function(_freecad_web_require path description)
|
||||
if(NOT EXISTS "${path}")
|
||||
@@ -73,6 +122,17 @@ _freecad_web_require("${_freecad_web_qt_cmake_root}/Qt5/Qt5Config.cmake" "Qt5 CM
|
||||
_freecad_web_require("${_freecad_web_qt_cmake_root}/Qt5Core/Qt5CoreConfig.cmake" "Qt5Core CMake package")
|
||||
_freecad_web_require("${_freecad_web_qt_cmake_root}/Qt5Network/Qt5NetworkConfig.cmake" "Qt5Network CMake package")
|
||||
_freecad_web_require("${_freecad_web_qt_cmake_root}/Qt5Xml/Qt5XmlConfig.cmake" "Qt5Xml CMake package")
|
||||
if(FREECAD_WEB_ENABLE_TECHDRAW_NATIVE)
|
||||
foreach(_freecad_web_qt_native_component Gui Widgets Concurrent)
|
||||
_freecad_web_require("${_freecad_web_qt_cmake_root}/Qt5${_freecad_web_qt_native_component}/Qt5${_freecad_web_qt_native_component}Config.cmake"
|
||||
"Qt5${_freecad_web_qt_native_component} CMake package")
|
||||
endforeach()
|
||||
foreach(_freecad_web_qt_support_component EventDispatcherSupport FontDatabaseSupport EglSupport PlatformCompositorSupport AccessibilitySupport DeviceDiscoverySupport ServiceSupport ThemeSupport)
|
||||
set("Qt5${_freecad_web_qt_support_component}_DIR"
|
||||
"${_freecad_web_qt_cmake_root}/Qt5${_freecad_web_qt_support_component}"
|
||||
CACHE PATH "Web Qt5${_freecad_web_qt_support_component} package" FORCE)
|
||||
endforeach()
|
||||
endif()
|
||||
_freecad_web_require("${_freecad_web_python_include}/Python.h" "CPython 3.12 Web headers")
|
||||
_freecad_web_require("${_freecad_web_python_library}" "CPython 3.12 Web static library")
|
||||
_freecad_web_require("${_freecad_web_icu_include}/unicode/utypes.h" "ICU Web headers")
|
||||
@@ -118,11 +178,17 @@ set(Boost_USE_MULTITHREADED OFF CACHE BOOL "Use single-threaded Boost Web librar
|
||||
set(Boost_INCLUDE_DIR "${_freecad_web_boost_include}" CACHE PATH "Boost Web headers" FORCE)
|
||||
set(Boost_LIBRARY_DIR "${_freecad_web_boost_library_dir}" CACHE PATH "Boost Web libraries" FORCE)
|
||||
set(Qt5_DIR "${_freecad_web_qt_cmake_root}/Qt5" CACHE PATH "Web Qt5 package" FORCE)
|
||||
foreach(_freecad_web_qt_component Core Network Xml)
|
||||
list(PREPEND CMAKE_PREFIX_PATH "${_freecad_web_qt_cmake_root}")
|
||||
set(_freecad_web_qt_components Core Network Xml)
|
||||
if(FREECAD_WEB_ENABLE_TECHDRAW_NATIVE)
|
||||
list(APPEND _freecad_web_qt_components Gui Widgets Concurrent)
|
||||
endif()
|
||||
foreach(_freecad_web_qt_component IN LISTS _freecad_web_qt_components)
|
||||
set("Qt5${_freecad_web_qt_component}_DIR"
|
||||
"${_freecad_web_qt_cmake_root}/Qt5${_freecad_web_qt_component}"
|
||||
CACHE PATH "Web Qt5${_freecad_web_qt_component} package" FORCE)
|
||||
endforeach()
|
||||
unset(_freecad_web_qt_components)
|
||||
|
||||
set(Python3_EXECUTABLE "${FREECAD_WEB_HOST_PYTHON_EXECUTABLE}" CACHE FILEPATH
|
||||
"Native Python for Web configure-time generators" FORCE)
|
||||
|
||||
Reference in New Issue
Block a user