]> OCCT Git - occt.git/commitdiff
0032629: Configuration, scripts - add USE_PTHREADS building option to wasm_build.bat
authorkgv <kgv@opencascade.com>
Mon, 18 Oct 2021 13:26:59 +0000 (16:26 +0300)
committersmoskvin <smoskvin@opencascade.com>
Fri, 22 Oct 2021 16:58:15 +0000 (19:58 +0300)
adm/scripts/wasm_build.bat
adm/scripts/wasm_custom.bat.template
adm/scripts/wasm_sample_build.bat
samples/webgl/CMakeLists.txt
src/DRAWEXE/CMakeLists.txt
src/OSD/OSD_Process.cxx
src/STEPConstruct/STEPConstruct_AP203Context.cxx

index ba664da14f6a01c06db4f5525f65b69b3ed77b50..4ef9a61f73b94ade4080370307b119df467b145b 100644 (file)
@@ -38,6 +38,7 @@ rem Optional 3rd-party libraries to enable
 set "USE_FREETYPE=ON"
 set "USE_RAPIDJSON=OFF"
 set "USE_DRACO=OFF"
+set "USE_PTHREADS=OFF"
 
 rem Archive tool
 set "THE_7Z_PARAMS=-t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on"
@@ -59,9 +60,14 @@ for /f %%i in ('git symbolic-ref --short HEAD') do ( set "aGitBranch=%%i" )
 
 set "aBuildType=Release"
 set "aBuildTypePrefix="
+set "anExtraCxxFlags="
+if /I ["%USE_PTHREADS%"] == ["ON"] (
+  set "anExtraCxxFlags=-pthread"
+  set "aBuildTypePrefix=%aBuildTypePrefix%-pthread"
+)
 if ["%toDebug%"] == ["1"] (
   set "aBuildType=Debug"
-  set "aBuildTypePrefix=-debug"
+  set "aBuildTypePrefix=%aBuildTypePrefix%-debug"
 )
 
 call :cmakeGenerate
@@ -159,6 +165,7 @@ if ["%toCMake%"] == ["1"] (
  -D CMAKE_TOOLCHAIN_FILE:FILEPATH="%aToolchain%" ^
  -D CMAKE_BUILD_TYPE:STRING="%aBuildType%" ^
  -D BUILD_LIBRARY_TYPE:STRING="Static" ^
+ -D CMAKE_CXX_FLAGS="%anExtraCxxFlags%" ^
  -D INSTALL_DIR:PATH="%aDestDir%" ^
  -D INSTALL_DIR_INCLUDE:STRING="inc" ^
  -D INSTALL_DIR_RESOURCE:STRING="src" ^
@@ -256,6 +263,7 @@ if ["%toCMake%"] == ["1"] (
   cmake -G "MinGW Makefiles" ^
  -D CMAKE_TOOLCHAIN_FILE:FILEPATH="%aToolchain%" ^
  -D CMAKE_BUILD_TYPE:STRING="%aBuildType%" ^
+ -D CMAKE_CXX_FLAGS="%anExtraCxxFlags%" ^
  -D CMAKE_INSTALL_PREFIX:PATH="%aDestDirSmpl%" ^
  -D SOURCE_MAP_BASE:STRING="%sourceMapBase%" ^
  -D OpenCASCADE_DIR:PATH="%aDestDir%/lib/cmake/opencascade" ^
index caeaf099385a4ffc76d0abb4a5f7e5e304438dec..0c52467a6a227b4cf2c787f7b5c11a503ed1e335 100644 (file)
@@ -24,5 +24,6 @@ rem set "BUILD_Visualization=ON"
 rem set "BUILD_ApplicationFramework=ON"
 rem set "BUILD_DataExchange=ON"
 
-rem set "USE_RAPIDJSON=OFF"
+rem set "USE_RAPIDJSON=ON"
 rem set "USE_DRACO=ON"
+rem set "USE_PTHREADS=ON"
index fd9a33b301e58e950dc56d7e4a7eeed970effbbe..ca7b5a095eba6ea3f28ebdf67f2582902d7b9618 100644 (file)
@@ -21,6 +21,8 @@ set "toInstall=1"
 set "toDebug=0"
 set "sourceMapBase="
 
+set "USE_PTHREADS=OFF"
+
 rem Configuration file
 if exist "%~dp0wasm_custom.bat" call "%~dp0wasm_custom.bat"
 
@@ -30,9 +32,14 @@ if not ["%aCmakeBin%"] == [""] ( set "PATH=%aCmakeBin%;%PATH%" )
 
 set "aBuildType=Release"
 set "aBuildTypePrefix="
+set "anExtraCxxFlags="
+if /I ["%USE_PTHREADS%"] == ["ON"] (
+  set "anExtraCxxFlags=-pthread"
+  set "aBuildTypePrefix=%aBuildTypePrefix%-pthread"
+)
 if ["%toDebug%"] == ["1"] (
   set "aBuildType=Debug"
-  set "aBuildTypePrefix=-debug"
+  set "aBuildTypePrefix=%aBuildTypePrefix%-debug"
 )
 
 call :cmakeGenerate
@@ -64,6 +71,7 @@ if ["%toCMake%"] == ["1"] (
   cmake -G "MinGW Makefiles" ^
  -D CMAKE_TOOLCHAIN_FILE:FILEPATH="%aToolchain%" ^
  -D CMAKE_BUILD_TYPE:STRING="%aBuildType%" ^
+ -D CMAKE_CXX_FLAGS="%anExtraCxxFlags%" ^
  -D CMAKE_INSTALL_PREFIX:PATH="%aDestDirSmpl%" ^
  -D SOURCE_MAP_BASE:STRING="%sourceMapBase%" ^
  -D OpenCASCADE_DIR:PATH="%aDestDirOcct%/lib/cmake/opencascade" ^
index 6243aca7b640de9db438882684c8b53881fd6aaf..5a2a323aa9737921784bd47a7a732effc864521a 100644 (file)
@@ -77,5 +77,8 @@ if (NOT "${SOURCE_MAP_BASE}" STREQUAL "")
   endif()
 endif()
 install(FILES occt-webgl-sample.html DESTINATION ${CMAKE_INSTALL_PREFIX})
-install(FILES ${OpenCASCADE_RESOURCE_DIR}/DrawResources/OCC_logo.png DESTINATION ${CMAKE_INSTALL_PREFIX})
-install(FILES ${OpenCASCADE_RESOURCE_DIR}/DrawResources/lamp.ico DESTINATION ${CMAKE_INSTALL_PREFIX})
+install(FILES ${OpenCASCADE_RESOURCE_DIR}/DrawResources/OCC_logo.png  DESTINATION ${CMAKE_INSTALL_PREFIX})
+install(FILES ${OpenCASCADE_RESOURCE_DIR}/DrawResources/lamp.ico      DESTINATION ${CMAKE_INSTALL_PREFIX})
+if (CMAKE_CXX_FLAGS MATCHES "-pthread")
+  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.worker.js DESTINATION ${CMAKE_INSTALL_PREFIX})
+endif()
index 4d93a4d690ae784387a0602974409767c6b0e537..c1d03299bd8b672dbb89f4757f7eef1321d3e886 100644 (file)
@@ -62,7 +62,14 @@ if (EMSCRIPTEN)
   # In case of WebAssembly build $tcl_library looks like "tcl8.6.11/library" by default.
   set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --preload-file ${3RDPARTY_TCL_LIBRARY_DIR}/tcl${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}@/tcl${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}.${TCL_RELEASE_SERIAL}/library")
 
-  install(FILES ${PROJECT_NAME}.html      DESTINATION "${INSTALL_DIR_BIN}/${OCCT_INSTALL_BIN_LETTER}")
-  install(FILES ../DrawResources/lamp.ico DESTINATION "${INSTALL_DIR_BIN}/${OCCT_INSTALL_BIN_LETTER}")
-  install(FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin\${OCCT_INSTALL_BIN_LETTER}/${PROJECT_NAME}.data DESTINATION "${INSTALL_DIR_BIN}/${OCCT_INSTALL_BIN_LETTER}")
+  install(FILES ${PROJECT_NAME}.html
+          DESTINATION "${INSTALL_DIR_BIN}/${OCCT_INSTALL_BIN_LETTER}")
+  install(FILES ../DrawResources/lamp.ico
+          DESTINATION "${INSTALL_DIR_BIN}/${OCCT_INSTALL_BIN_LETTER}")
+  install(FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin\${OCCT_INSTALL_BIN_LETTER}/${PROJECT_NAME}.data
+          DESTINATION "${INSTALL_DIR_BIN}/${OCCT_INSTALL_BIN_LETTER}")
+  if (CMAKE_CXX_FLAGS MATCHES "-pthread")
+    install(FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin\${OCCT_INSTALL_BIN_LETTER}/${PROJECT_NAME}.worker.js
+            DESTINATION "${INSTALL_DIR_BIN}/${OCCT_INSTALL_BIN_LETTER}")
+  endif()
 endif()
index bb530e9b151da25d793eaaee6c4ed6432302138f..acd7f5ca21b3c1fbb7f00702ad48eb18f47be40a 100644 (file)
@@ -41,7 +41,9 @@
   #include <stdlib.h>
   #include <sys/param.h>
   #include <sys/time.h>
+  #if !defined(__EMSCRIPTEN__)
   #include <pwd.h>       // For command getpwuid
+  #endif
   #include <unistd.h>
 #endif
 
index a5cae628cd9458d8f1085b428b242d818f39dec7..bf25416ef9c61c4fe74a6418ae132febbb9d3eb6 100644 (file)
@@ -60,8 +60,8 @@
 #include <StepAP203_HArray1OfApprovedItem.hxx>
 #include <StepBasic_ProductCategory.hxx>
 
-#ifndef _WIN32
-include <pwd.h>
+#if !defined(_WIN32) && !defined(__ANDROID__) && !defined(__EMSCRIPTEN__)
+  #include <pwd.h>
 #endif
 
 //=======================================================================
@@ -180,12 +180,19 @@ Handle(StepBasic_PersonAndOrganization) STEPConstruct_AP203Context::DefaultPerso
     // construct person`s name
     OSD_Process sys;
     TCollection_AsciiString user (sys.UserName());
-#if !defined(_WIN32) && !defined(__ANDROID__)  
-    if ( !user.IsEmpty() ) {
-      struct passwd *pwd = getpwnam ( user.ToCString() );
-      if ( pwd ) user = pwd->pw_gecos;
+#if !defined(_WIN32) && !defined(__ANDROID__) && !defined(__EMSCRIPTEN__)
+    if (!user.IsEmpty())
+    {
+      struct passwd* aPwd = getpwnam (user.ToCString());
+      if (aPwd != NULL)
+      {
+        user = aPwd->pw_gecos;
+      }
+    }
+    else
+    {
+      user = "Unknown";
     }
-    else user = "Unknown";
 #endif
     Handle(TCollection_HAsciiString) fname = new TCollection_HAsciiString ("");
     Handle(TCollection_HAsciiString) lname = new TCollection_HAsciiString ("");