DPLUGIN() macros no more defines exported function PLUGINFACTORY when building static libraries.
DRAWEXE executable now pre-loads a set of plugins when building static libraries.
dversion - added WebAssembly info.
.gitattributes eol=lf
.gitignore eol=lf
*.txt eol=lf
+*.htm eol=lf
+*.html eol=lf
*.h eol=lf
*.c eol=lf
*.inl eol=lf
*.xib eol=lf
*.plist eol=lf
*.java eol=lf
+*.js eol=lf
*.igs eol=lf
*.iges eol=lf
*.stp eol=lf
FILES eol=lf
PACKAGES eol=lf
EXTERNLIB eol=lf
+EXTERNLIB_STATIC eol=lf
UDLIST eol=lf
tests/* eol=lf
tests/*/* eol=lf
endif()
endforeach()
-# DRAWEXE excluded when library build is static
-if (NOT BUILD_SHARED_LIBS)
- list (REMOVE_ITEM BUILD_TOOLKITS DRAWEXE)
- message (STATUS "Info: DRAWEXE is not included due to ${BUILD_LIBRARY_TYPE} build library type")
-endif()
-
# accumulate all used toolkits
list (REMOVE_DUPLICATES BUILD_TOOLKITS)
set (RAW_BUILD_TOOLKITS)
OCCT_CHECK_AND_UNSET (OpenGlLibs_LIB)
endif()
+ elseif (EMSCRIPTEN)
+ set (CSF_ThreadLibs "pthread rt stdc++")
+ set (CSF_OpenGlesLibs "EGL GLESv2")
+ set (CSF_dl "dl")
elseif (ANDROID)
set (CSF_ThreadLibs "c")
set (CSF_OpenGlesLibs "EGL GLESv2")
set (OCCT_TOOLKITS_NAME_SUFFIX "TOOLKITS")
endif()
-# parce PACKAGES file
+# parse PACKAGES file
FILE_TO_LIST ("${RELATIVE_SOURCES_DIR}/${PROJECT_NAME}/PACKAGES" USED_PACKAGES)
if ("${USED_PACKAGES}" STREQUAL "")
set (USED_PACKAGES ${PROJECT_NAME})
if (NOT BUILD_SHARED_LIBS)
list (APPEND PRECOMPILED_DEFS "-DOCCT_NO_PLUGINS")
- if (WIN32)
+ if (WIN32 AND NOT EXECUTABLE_PROJECT)
list (APPEND PRECOMPILED_DEFS "-DOCCT_STATIC_BUILD")
endif()
endif()
install (TARGETS ${PROJECT_NAME}
DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}")
+
+ if (EMSCRIPTEN)
+ install(FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin\${OCCT_INSTALL_BIN_LETTER}/${PROJECT_NAME}.wasm DESTINATION "${INSTALL_DIR_BIN}/${OCCT_INSTALL_BIN_LETTER}")
+ endif()
else()
add_library (${PROJECT_NAME} ${USED_SRCFILES} ${USED_INCFILES} ${USED_RCFILE} ${RESOURCE_FILES} ${${PROJECT_NAME}_MOC_FILES})
set (USED_TOOLKITS_BY_CURRENT_PROJECT)
set (USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT)
-# parce EXTERNLIB file
-FILE_TO_LIST ("${RELATIVE_SOURCES_DIR}/${PROJECT_NAME}/EXTERNLIB" USED_EXTERNLIB_AND_TOOLKITS)
+# parse EXTERNLIB file
+if (CUSTOM_EXTERNLIB)
+ set (USED_EXTERNLIB_AND_TOOLKITS ${CUSTOM_EXTERNLIB})
+else()
+ FILE_TO_LIST ("${RELATIVE_SOURCES_DIR}/${PROJECT_NAME}/EXTERNLIB" USED_EXTERNLIB_AND_TOOLKITS)
+endif()
foreach (USED_ITEM ${USED_EXTERNLIB_AND_TOOLKITS})
string (REGEX MATCH "^ *#" COMMENT_FOUND ${USED_ITEM})
if (NOT COMMENT_FOUND)
endif()
endif()
-if (BUILD_SHARED_LIBS)
+if (BUILD_SHARED_LIBS OR EXECUTABLE_PROJECT)
if(IS_VTK_9XX)
string (REGEX REPLACE "vtk" "VTK::" USED_TOOLKITS_BY_CURRENT_PROJECT "${USED_TOOLKITS_BY_CURRENT_PROJECT}")
endif()
# tcl
-if (NOT DEFINED INSTALL_TCL AND BUILD_SHARED_LIBS)
+if (NOT DEFINED INSTALL_TCL)
set (INSTALL_TCL OFF CACHE BOOL "${INSTALL_TCL_DESCR}")
endif()
set (3RDPARTY_TCL_INCLUDE_DIR "" CACHE FILEPATH "The directory containing headers of tcl")
endif()
-if (BUILD_SHARED_LIBS)
- # tcl library file (with absolute path)
- if (NOT DEFINED 3RDPARTY_TCL_LIBRARY OR NOT 3RDPARTY_TCL_LIBRARY_DIR)
- set (3RDPARTY_TCL_LIBRARY "" CACHE FILEPATH "tcl library" FORCE)
- endif()
- # tcl library directory
- if (NOT DEFINED 3RDPARTY_TCL_LIBRARY_DIR)
- set (3RDPARTY_TCL_LIBRARY_DIR "" CACHE FILEPATH "The directory containing tcl library")
- endif()
+# tcl library file (with absolute path)
+if (NOT DEFINED 3RDPARTY_TCL_LIBRARY OR NOT 3RDPARTY_TCL_LIBRARY_DIR)
+ set (3RDPARTY_TCL_LIBRARY "" CACHE FILEPATH "tcl library" FORCE)
+endif()
- # tcl shared library (with absolute path)
- if (WIN32)
- if (NOT DEFINED 3RDPARTY_TCL_DLL OR NOT 3RDPARTY_TCL_DLL_DIR)
- set (3RDPARTY_TCL_DLL "" CACHE FILEPATH "tcl shared library" FORCE)
- endif()
- endif()
+# tcl library directory
+if (NOT DEFINED 3RDPARTY_TCL_LIBRARY_DIR)
+ set (3RDPARTY_TCL_LIBRARY_DIR "" CACHE FILEPATH "The directory containing tcl library")
+endif()
- # tcl shared library directory
- if (WIN32 AND NOT DEFINED 3RDPARTY_TCL_DLL_DIR)
- set (3RDPARTY_TCL_DLL_DIR "" CACHE FILEPATH "The directory containing tcl shared library")
+# tcl shared library (with absolute path)
+if (WIN32)
+ if (NOT DEFINED 3RDPARTY_TCL_DLL OR NOT 3RDPARTY_TCL_DLL_DIR)
+ set (3RDPARTY_TCL_DLL "" CACHE FILEPATH "tcl shared library" FORCE)
endif()
endif()
+# tcl shared library directory
+if (WIN32 AND NOT DEFINED 3RDPARTY_TCL_DLL_DIR)
+ set (3RDPARTY_TCL_DLL_DIR "" CACHE FILEPATH "The directory containing tcl shared library")
+endif()
+
+
# search for tcl in user defined directory
if (NOT 3RDPARTY_TCL_DIR AND 3RDPARTY_DIR)
FIND_PRODUCT_DIR("${3RDPARTY_DIR}" tcl TCL_DIR_NAME)
endif()
endif()
-if (BUILD_SHARED_LIBS)
- # tcl dir and library
- if (NOT 3RDPARTY_TCL_LIBRARY)
- if (TCL_LIBRARY AND EXISTS "${TCL_LIBRARY}")
- set (3RDPARTY_TCL_LIBRARY "${TCL_LIBRARY}" CACHE FILEPATH "TCL library" FORCE)
+# tcl dir and library
+if (NOT 3RDPARTY_TCL_LIBRARY)
+ if (TCL_LIBRARY AND EXISTS "${TCL_LIBRARY}")
+ set (3RDPARTY_TCL_LIBRARY "${TCL_LIBRARY}" CACHE FILEPATH "TCL library" FORCE)
- if (NOT 3RDPARTY_TCL_LIBRARY_DIR)
- get_filename_component (3RDPARTY_TCL_LIBRARY_DIR "${3RDPARTY_TCL_LIBRARY}" PATH)
- set (3RDPARTY_TCL_LIBRARY_DIR "${3RDPARTY_TCL_LIBRARY_DIR}" CACHE FILEPATH "The directory containing TCL library" FORCE)
- endif()
+ if (NOT 3RDPARTY_TCL_LIBRARY_DIR)
+ get_filename_component (3RDPARTY_TCL_LIBRARY_DIR "${3RDPARTY_TCL_LIBRARY}" PATH)
+ set (3RDPARTY_TCL_LIBRARY_DIR "${3RDPARTY_TCL_LIBRARY_DIR}" CACHE FILEPATH "The directory containing TCL library" FORCE)
endif()
endif()
+endif()
-
- if (WIN32)
- if (NOT 3RDPARTY_TCL_DLL)
- set (CMAKE_FIND_LIBRARY_SUFFIXES .lib .dll .a)
-
- set (DLL_FOLDER_FOR_SEARCH "")
- if (3RDPARTY_TCL_DLL_DIR)
- set (DLL_FOLDER_FOR_SEARCH "${3RDPARTY_TCL_DLL_DIR}")
- elseif (3RDPARTY_TCL_DIR)
- set (DLL_FOLDER_FOR_SEARCH "${3RDPARTY_TCL_DIR}/bin")
- elseif (3RDPARTY_TCL_LIBRARY_DIR)
- get_filename_component (3RDPARTY_TCL_LIBRARY_DIR_PARENT "${3RDPARTY_TCL_LIBRARY_DIR}" PATH)
- set (DLL_FOLDER_FOR_SEARCH "${3RDPARTY_TCL_LIBRARY_DIR_PARENT}/bin")
- endif()
-
- set (3RDPARTY_TCL_DLL "3RDPARTY_TCL_DLL-NOTFOUND" CACHE FILEPATH "TCL shared library" FORCE)
- find_library (3RDPARTY_TCL_DLL NAMES ${CSF_TclLibs}
- PATHS "${DLL_FOLDER_FOR_SEARCH}"
- NO_DEFAULT_PATH)
+if (WIN32)
+ if (NOT 3RDPARTY_TCL_DLL)
+ set (CMAKE_FIND_LIBRARY_SUFFIXES .lib .dll .a)
+
+ set (DLL_FOLDER_FOR_SEARCH "")
+ if (3RDPARTY_TCL_DLL_DIR)
+ set (DLL_FOLDER_FOR_SEARCH "${3RDPARTY_TCL_DLL_DIR}")
+ elseif (3RDPARTY_TCL_DIR)
+ set (DLL_FOLDER_FOR_SEARCH "${3RDPARTY_TCL_DIR}/bin")
+ elseif (3RDPARTY_TCL_LIBRARY_DIR)
+ get_filename_component (3RDPARTY_TCL_LIBRARY_DIR_PARENT "${3RDPARTY_TCL_LIBRARY_DIR}" PATH)
+ set (DLL_FOLDER_FOR_SEARCH "${3RDPARTY_TCL_LIBRARY_DIR_PARENT}/bin")
endif()
+
+ set (3RDPARTY_TCL_DLL "3RDPARTY_TCL_DLL-NOTFOUND" CACHE FILEPATH "TCL shared library" FORCE)
+ find_library (3RDPARTY_TCL_DLL NAMES ${CSF_TclLibs}
+ PATHS "${DLL_FOLDER_FOR_SEARCH}"
+ NO_DEFAULT_PATH)
endif()
endif()
COMPLIANCE_PRODUCT_CONSISTENCY(TCL)
-if (BUILD_SHARED_LIBS)
- # tcl dir and library
- if (NOT 3RDPARTY_TCL_LIBRARY)
- set (3RDPARTY_TCL_LIBRARY "3RDPARTY_TCL_LIBRARY-NOTFOUND" CACHE FILEPATH "TCL library" FORCE)
- find_library (3RDPARTY_TCL_LIBRARY NAMES ${CSF_TclLibs}
- PATHS "${3RDPARTY_TCL_LIBRARY_DIR}"
- NO_DEFAULT_PATH)
-
- # search in another place if previous search doesn't find anything
- find_library (3RDPARTY_TCL_LIBRARY NAMES ${CSF_TclLibs}
- PATHS "${3RDPARTY_TCL_DIR}/lib"
- NO_DEFAULT_PATH)
+# tcl dir and library
+if (NOT 3RDPARTY_TCL_LIBRARY)
+ set (3RDPARTY_TCL_LIBRARY "3RDPARTY_TCL_LIBRARY-NOTFOUND" CACHE FILEPATH "TCL library" FORCE)
+ find_library (3RDPARTY_TCL_LIBRARY NAMES ${CSF_TclLibs}
+ PATHS "${3RDPARTY_TCL_LIBRARY_DIR}"
+ NO_DEFAULT_PATH)
+ # search in another place if previous search doesn't find anything
+ find_library (3RDPARTY_TCL_LIBRARY NAMES ${CSF_TclLibs}
+ PATHS "${3RDPARTY_TCL_DIR}/lib"
+ NO_DEFAULT_PATH)
- if (NOT 3RDPARTY_TCL_LIBRARY OR NOT EXISTS "${3RDPARTY_TCL_LIBRARY}")
- set (3RDPARTY_TCL_LIBRARY "" CACHE FILEPATH "TCL library" FORCE)
- endif()
+ if (NOT 3RDPARTY_TCL_LIBRARY OR NOT EXISTS "${3RDPARTY_TCL_LIBRARY}")
+ set (3RDPARTY_TCL_LIBRARY "" CACHE FILEPATH "TCL library" FORCE)
+ endif()
- if (NOT 3RDPARTY_TCL_LIBRARY_DIR AND 3RDPARTY_TCL_LIBRARY)
- get_filename_component (3RDPARTY_TCL_LIBRARY_DIR "${3RDPARTY_TCL_LIBRARY}" PATH)
- set (3RDPARTY_TCL_LIBRARY_DIR "${3RDPARTY_TCL_LIBRARY_DIR}" CACHE FILEPATH "The directory containing TCL library" FORCE)
- endif()
+ if (NOT 3RDPARTY_TCL_LIBRARY_DIR AND 3RDPARTY_TCL_LIBRARY)
+ get_filename_component (3RDPARTY_TCL_LIBRARY_DIR "${3RDPARTY_TCL_LIBRARY}" PATH)
+ set (3RDPARTY_TCL_LIBRARY_DIR "${3RDPARTY_TCL_LIBRARY_DIR}" CACHE FILEPATH "The directory containing TCL library" FORCE)
endif()
+endif()
- set (3RDPARTY_TCL_LIBRARY_VERSION "")
- if (3RDPARTY_TCL_LIBRARY AND EXISTS "${3RDPARTY_TCL_LIBRARY}")
- get_filename_component (TCL_LIBRARY_NAME "${3RDPARTY_TCL_LIBRARY}" NAME)
- string(REGEX REPLACE "^.*tcl([0-9]\\.*[0-9]).*$" "\\1" TCL_LIBRARY_VERSION "${TCL_LIBRARY_NAME}")
+set (3RDPARTY_TCL_LIBRARY_VERSION "")
+if (3RDPARTY_TCL_LIBRARY AND EXISTS "${3RDPARTY_TCL_LIBRARY}")
+ get_filename_component (TCL_LIBRARY_NAME "${3RDPARTY_TCL_LIBRARY}" NAME)
+ string(REGEX REPLACE "^.*tcl([0-9]\\.*[0-9]).*$" "\\1" TCL_LIBRARY_VERSION "${TCL_LIBRARY_NAME}")
- if (NOT "${TCL_LIBRARY_VERSION}" STREQUAL "${TCL_LIBRARY_NAME}")
- set (3RDPARTY_TCL_LIBRARY_VERSION "${TCL_LIBRARY_VERSION}")
- else() # if the version isn't found - seek other library with 8.6 or 8.5 version in the same dir
- message (STATUS "Info: TCL version isn't found")
- endif()
+ if (NOT "${TCL_LIBRARY_VERSION}" STREQUAL "${TCL_LIBRARY_NAME}")
+ set (3RDPARTY_TCL_LIBRARY_VERSION "${TCL_LIBRARY_VERSION}")
+ else() # if the version isn't found - seek other library with 8.6 or 8.5 version in the same dir
+ message (STATUS "Info: TCL version isn't found")
endif()
+endif()
- set (3RDPARTY_TCL_LIBRARY_VERSION_WITH_DOT "")
- if (3RDPARTY_TCL_LIBRARY_VERSION)
- string (REGEX REPLACE "^.*([0-9])[^0-9]*[0-9].*$" "\\1" 3RDPARTY_TCL_MAJOR_VERSION "${3RDPARTY_TCL_LIBRARY_VERSION}")
- string (REGEX REPLACE "^.*[0-9][^0-9]*([0-9]).*$" "\\1" 3RDPARTY_TCL_MINOR_VERSION "${3RDPARTY_TCL_LIBRARY_VERSION}")
- set (3RDPARTY_TCL_LIBRARY_VERSION_WITH_DOT "${3RDPARTY_TCL_MAJOR_VERSION}.${3RDPARTY_TCL_MINOR_VERSION}")
- endif()
+set (3RDPARTY_TCL_LIBRARY_VERSION_WITH_DOT "")
+if (3RDPARTY_TCL_LIBRARY_VERSION)
+ string (REGEX REPLACE "^.*([0-9])[^0-9]*[0-9].*$" "\\1" 3RDPARTY_TCL_MAJOR_VERSION "${3RDPARTY_TCL_LIBRARY_VERSION}")
+ string (REGEX REPLACE "^.*[0-9][^0-9]*([0-9]).*$" "\\1" 3RDPARTY_TCL_MINOR_VERSION "${3RDPARTY_TCL_LIBRARY_VERSION}")
+ set (3RDPARTY_TCL_LIBRARY_VERSION_WITH_DOT "${3RDPARTY_TCL_MAJOR_VERSION}.${3RDPARTY_TCL_MINOR_VERSION}")
+endif()
- if (WIN32)
- if (NOT 3RDPARTY_TCL_DLL)
- set (CMAKE_FIND_LIBRARY_SUFFIXES .lib .dll .a)
-
- set (DLL_FOLDER_FOR_SEARCH "")
- if (3RDPARTY_TCL_DLL_DIR)
- set (DLL_FOLDER_FOR_SEARCH "${3RDPARTY_TCL_DLL_DIR}")
- elseif (3RDPARTY_TCL_DIR)
- set (DLL_FOLDER_FOR_SEARCH "${3RDPARTY_TCL_DIR}/bin")
- else()
- get_filename_component (3RDPARTY_TCL_LIBRARY_DIR_PARENT "${3RDPARTY_TCL_LIBRARY_DIR}" PATH)
- set (DLL_FOLDER_FOR_SEARCH "${3RDPARTY_TCL_LIBRARY_DIR_PARENT}/bin")
- endif()
-
- set (3RDPARTY_TCL_DLL "3RDPARTY_TCL_DLL-NOTFOUND" CACHE FILEPATH "TCL shared library" FORCE)
- find_library (3RDPARTY_TCL_DLL NAMES tcl${3RDPARTY_TCL_LIBRARY_VERSION}
- PATHS "${DLL_FOLDER_FOR_SEARCH}"
- NO_DEFAULT_PATH)
+if (WIN32)
+ if (NOT 3RDPARTY_TCL_DLL)
+ set (CMAKE_FIND_LIBRARY_SUFFIXES .lib .dll .a)
- if (NOT 3RDPARTY_TCL_DLL OR NOT EXISTS "${3RDPARTY_TCL_DLL}")
- set (3RDPARTY_TCL_DLL "" CACHE FILEPATH "TCL shared library" FORCE)
- endif()
+ set (DLL_FOLDER_FOR_SEARCH "")
+ if (3RDPARTY_TCL_DLL_DIR)
+ set (DLL_FOLDER_FOR_SEARCH "${3RDPARTY_TCL_DLL_DIR}")
+ elseif (3RDPARTY_TCL_DIR)
+ set (DLL_FOLDER_FOR_SEARCH "${3RDPARTY_TCL_DIR}/bin")
+ else()
+ get_filename_component (3RDPARTY_TCL_LIBRARY_DIR_PARENT "${3RDPARTY_TCL_LIBRARY_DIR}" PATH)
+ set (DLL_FOLDER_FOR_SEARCH "${3RDPARTY_TCL_LIBRARY_DIR_PARENT}/bin")
endif()
- if (NOT 3RDPARTY_TCL_DLL_DIR AND 3RDPARTY_TCL_DLL)
- get_filename_component (3RDPARTY_TCL_DLL_DIR "${3RDPARTY_TCL_DLL}" PATH)
- set (3RDPARTY_TCL_DLL_DIR "${3RDPARTY_TCL_DLL_DIR}" CACHE FILEPATH "The directory containing TCL shared library" FORCE)
+
+ set (3RDPARTY_TCL_DLL "3RDPARTY_TCL_DLL-NOTFOUND" CACHE FILEPATH "TCL shared library" FORCE)
+ find_library (3RDPARTY_TCL_DLL NAMES tcl${3RDPARTY_TCL_LIBRARY_VERSION}
+ PATHS "${DLL_FOLDER_FOR_SEARCH}"
+ NO_DEFAULT_PATH)
+
+ if (NOT 3RDPARTY_TCL_DLL OR NOT EXISTS "${3RDPARTY_TCL_DLL}")
+ set (3RDPARTY_TCL_DLL "" CACHE FILEPATH "TCL shared library" FORCE)
endif()
endif()
-
- # include found paths to common variables
- if (3RDPARTY_TCL_INCLUDE_DIR AND EXISTS "${3RDPARTY_TCL_INCLUDE_DIR}")
- list (APPEND 3RDPARTY_INCLUDE_DIRS "${3RDPARTY_TCL_INCLUDE_DIR}")
- else()
- list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_TCL_INCLUDE_DIR)
+ if (NOT 3RDPARTY_TCL_DLL_DIR AND 3RDPARTY_TCL_DLL)
+ get_filename_component (3RDPARTY_TCL_DLL_DIR "${3RDPARTY_TCL_DLL}" PATH)
+ set (3RDPARTY_TCL_DLL_DIR "${3RDPARTY_TCL_DLL_DIR}" CACHE FILEPATH "The directory containing TCL shared library" FORCE)
endif()
+endif()
+
+# include found paths to common variables
+if (3RDPARTY_TCL_INCLUDE_DIR AND EXISTS "${3RDPARTY_TCL_INCLUDE_DIR}")
+ list (APPEND 3RDPARTY_INCLUDE_DIRS "${3RDPARTY_TCL_INCLUDE_DIR}")
+else()
+ list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_TCL_INCLUDE_DIR)
+endif()
- if (3RDPARTY_TCL_LIBRARY AND EXISTS "${3RDPARTY_TCL_LIBRARY}")
- list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_TCL_LIBRARY_DIR}")
+if (3RDPARTY_TCL_LIBRARY AND EXISTS "${3RDPARTY_TCL_LIBRARY}")
+ list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_TCL_LIBRARY_DIR}")
+else()
+ list (APPEND 3RDPARTY_NO_LIBS 3RDPARTY_TCL_LIBRARY_DIR)
+endif()
+
+if (WIN32)
+ if (3RDPARTY_TCL_DLL OR EXISTS "${3RDPARTY_TCL_DLL}")
+ list (APPEND 3RDPARTY_DLL_DIRS "${3RDPARTY_TCL_DLL_DIR}")
else()
- list (APPEND 3RDPARTY_NO_LIBS 3RDPARTY_TCL_LIBRARY_DIR)
+ list (APPEND 3RDPARTY_NO_DLLS 3RDPARTY_TCL_DLL_DIR)
endif()
+endif()
+
+# install tcl
+if (INSTALL_TCL)
+ # include occt macros. compiler_bitness, os_wiht_bit, compiler
+ OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_macros")
+
+ OCCT_MAKE_OS_WITH_BITNESS()
+ OCCT_MAKE_COMPILER_SHORT_NAME()
if (WIN32)
- if (3RDPARTY_TCL_DLL OR EXISTS "${3RDPARTY_TCL_DLL}")
- list (APPEND 3RDPARTY_DLL_DIRS "${3RDPARTY_TCL_DLL_DIR}")
- else()
- list (APPEND 3RDPARTY_NO_DLLS 3RDPARTY_TCL_DLL_DIR)
- endif()
- endif()
+ # tcl 8.6 requires zlib. install all dlls from tcl bin folder that may contain zlib also
- # install tcl
- if (INSTALL_TCL)
- # include occt macros. compiler_bitness, os_wiht_bit, compiler
- OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_macros")
-
- OCCT_MAKE_OS_WITH_BITNESS()
- OCCT_MAKE_COMPILER_SHORT_NAME()
-
- if (WIN32)
- # tcl 8.6 requires zlib. install all dlls from tcl bin folder that may contain zlib also
-
- # collect and install all dlls from tcl dll dirs
- file (GLOB TCL_DLLS "${3RDPARTY_TCL_DLL_DIR}/*.dll")
-
- if (SINGLE_GENERATOR)
- install (FILES ${TCL_DLLS} DESTINATION "${INSTALL_DIR_BIN}")
- else()
- install (FILES ${TCL_DLLS}
- CONFIGURATIONS Release
- DESTINATION "${INSTALL_DIR_BIN}")
- install (FILES ${TCL_DLLS}
- CONFIGURATIONS RelWithDebInfo
- DESTINATION "${INSTALL_DIR_BIN}i")
- install (FILES ${TCL_DLLS}
- CONFIGURATIONS Debug
- DESTINATION "${INSTALL_DIR_BIN}d")
- endif()
+ # collect and install all dlls from tcl dll dirs
+ file (GLOB TCL_DLLS "${3RDPARTY_TCL_DLL_DIR}/*.dll")
+
+ if (SINGLE_GENERATOR)
+ install (FILES ${TCL_DLLS} DESTINATION "${INSTALL_DIR_BIN}")
else()
- get_filename_component(3RDPARTY_TCL_LIBRARY_REALPATH ${3RDPARTY_TCL_LIBRARY} REALPATH)
-
- if (SINGLE_GENERATOR)
- install (FILES ${3RDPARTY_TCL_LIBRARY_REALPATH} DESTINATION "${INSTALL_DIR_LIB}")
- else()
- install (FILES ${3RDPARTY_TCL_LIBRARY_REALPATH}
- CONFIGURATIONS Release
- DESTINATION "${INSTALL_DIR_LIB}")
- install (FILES ${3RDPARTY_TCL_LIBRARY_REALPATH}
- CONFIGURATIONS RelWithDebInfo
- DESTINATION "${INSTALL_DIR_LIB}i")
- install (FILES ${3RDPARTY_TCL_LIBRARY_REALPATH}
- CONFIGURATIONS Debug
- DESTINATION "${INSTALL_DIR_LIB}d")
- endif()
+ install (FILES ${TCL_DLLS}
+ CONFIGURATIONS Release
+ DESTINATION "${INSTALL_DIR_BIN}")
+ install (FILES ${TCL_DLLS}
+ CONFIGURATIONS RelWithDebInfo
+ DESTINATION "${INSTALL_DIR_BIN}i")
+ install (FILES ${TCL_DLLS}
+ CONFIGURATIONS Debug
+ DESTINATION "${INSTALL_DIR_BIN}d")
endif()
+ else()
+ get_filename_component(3RDPARTY_TCL_LIBRARY_REALPATH ${3RDPARTY_TCL_LIBRARY} REALPATH)
- if (TCL_TCLSH_VERSION)
- # tcl is required to install in lib folder (without)
- install (DIRECTORY "${3RDPARTY_TCL_LIBRARY_DIR}/tcl8" DESTINATION "${INSTALL_DIR_LIB}")
- install (DIRECTORY "${3RDPARTY_TCL_LIBRARY_DIR}/tcl${TCL_TCLSH_VERSION}" DESTINATION "${INSTALL_DIR_LIB}")
+ if (SINGLE_GENERATOR)
+ install (FILES ${3RDPARTY_TCL_LIBRARY_REALPATH} DESTINATION "${INSTALL_DIR_LIB}")
else()
- message (STATUS "\nWarning: tclX.X subdir won't be copied during the installation process.")
- message (STATUS "Try seeking tcl within another folder by changing 3RDPARTY_TCL_DIR variable.")
+ install (FILES ${3RDPARTY_TCL_LIBRARY_REALPATH}
+ CONFIGURATIONS Release
+ DESTINATION "${INSTALL_DIR_LIB}")
+ install (FILES ${3RDPARTY_TCL_LIBRARY_REALPATH}
+ CONFIGURATIONS RelWithDebInfo
+ DESTINATION "${INSTALL_DIR_LIB}i")
+ install (FILES ${3RDPARTY_TCL_LIBRARY_REALPATH}
+ CONFIGURATIONS Debug
+ DESTINATION "${INSTALL_DIR_LIB}d")
endif()
+ endif()
- set (USED_3RDPARTY_TCL_DIR "")
+ if (TCL_TCLSH_VERSION)
+ # tcl is required to install in lib folder (without)
+ install (DIRECTORY "${3RDPARTY_TCL_LIBRARY_DIR}/tcl8" DESTINATION "${INSTALL_DIR_LIB}")
+ install (DIRECTORY "${3RDPARTY_TCL_LIBRARY_DIR}/tcl${TCL_TCLSH_VERSION}" DESTINATION "${INSTALL_DIR_LIB}")
else()
- # the library directory for using by the executable
- if (WIN32)
- set (USED_3RDPARTY_TCL_DIR ${3RDPARTY_TCL_DLL_DIR})
- else()
- set (USED_3RDPARTY_TCL_DIR ${3RDPARTY_TCL_LIBRARY_DIR})
- endif()
+ message (STATUS "\nWarning: tclX.X subdir won't be copied during the installation process.")
+ message (STATUS "Try seeking tcl within another folder by changing 3RDPARTY_TCL_DIR variable.")
endif()
- mark_as_advanced (3RDPARTY_TCL_LIBRARY 3RDPARTY_TCL_DLL)
+ set (USED_3RDPARTY_TCL_DIR "")
+else()
+ # the library directory for using by the executable
+ if (WIN32)
+ set (USED_3RDPARTY_TCL_DIR ${3RDPARTY_TCL_DLL_DIR})
+ else()
+ set (USED_3RDPARTY_TCL_DIR ${3RDPARTY_TCL_LIBRARY_DIR})
+ endif()
endif()
+mark_as_advanced (3RDPARTY_TCL_LIBRARY 3RDPARTY_TCL_DLL)
+
if (TK_FOUND AND 3RDPARTY_TCL_DIR)
get_filename_component (TK_WISH_ABSOLUTE "${TK_WISH}" ABSOLUTE)
OCCT_CHECK_AND_UNSET (TK_INCLUDE_PATH)
OCCT_CHECK_AND_UNSET (TK_WISH)
-if (NOT BUILD_SHARED_LIBS)
- OCCT_CHECK_AND_UNSET (3RDPARTY_TCL_LIBRARY)
- OCCT_CHECK_AND_UNSET (3RDPARTY_TCL_LIBRARY_DIR)
- OCCT_CHECK_AND_UNSET (3RDPARTY_TCL_DLL)
- OCCT_CHECK_AND_UNSET (3RDPARTY_TCL_DLL_DIR)
- OCCT_CHECK_AND_UNSET (INSTALL_TCL)
-endif()
set VSDATA=2015
set VSPLATFORM=Win64
set "BUILD_DIR=build-vs%VS%-%VSPLATFORM%"
+set "OCCT3RDPARTY="
set "INSTALL_DIR=%SrcRoot%\install"
set BUILD_ADDITIONAL_TOOLKITS=
-D 3RDPARTY_TCL_INCLUDE_DIR:PATH="%aTcl%/include" ^
-D 3RDPARTY_TCL_LIBRARY_DIR:PATH="%aTcl%/lib" ^
-D 3RDPARTY_TCL_LIBRARY:FILEPATH="%aTcl%/lib/libtcl.a" ^
+ -D USE_TK:BOOL="OFF" ^
"%aCasSrc%"
if errorlevel 1 (
-<!DOCTYPE html>\r
-<html lang=en-us>\r
-<head>\r
-<meta charset=utf-8><meta content="text/html; charset=utf-8" http-equiv=Content-Type>\r
-<link rel="shortcut icon" href="lamp.ico" type="image/x-icon" />\r
-<title>OCCT WebGL Viewer Sample</title>\r
-</head>\r
-<body>\r
-\r
-<h2>OCCT WebGL Viewer Sample</h2>\r
-<div>\r
- <canvas id=occViewerCanvas oncontextmenu=event.preventDefault() tabindex=-1 style="border:0 none;background-color:#000" width="409" height="409"></canvas>\r
- <img id=occlogo src="OCC_logo.png" style="position: absolute; left: 20px; top: 0px; z-index: 2;" />\r
-</div>\r
-\r
-<div>\r
- <label for="fileInput">Choose BREP file to upload: </label><input type="file" id="fileInput" accept=".brep">\r
- <input type="button" value="Clear All" onclick="OccViewerModule.removeAllObjects()">\r
- <input type="button" value="Fit All" onclick="OccViewerModule.fitAllObjects(true)">\r
-</div>\r
-<h4>Console output:</h4>\r
-<p id="output"></p>\r
-<script>\r
-//! Resize canvas to fit into window.\r
-function updateCanvasSize()\r
-{\r
- // size of canvas in logical (density-independent) units\r
- var aSizeX = Math.min (window.innerWidth, window.screen.availWidth);\r
- var aSizeY = Math.min (window.innerHeight, window.screen.availHeight);\r
- aSizeX = Math.max (300, aSizeX - 30);\r
- aSizeY = Math.max (300, aSizeY / 2);\r
- occViewerCanvas.style.width = aSizeX + "px";\r
- occViewerCanvas.style.height = aSizeY + "px";\r
-\r
- // drawing buffer size (aka backing store)\r
- var aDevicePixelRatio = window.devicePixelRatio || 1;\r
- occViewerCanvas.width = aSizeX * aDevicePixelRatio;\r
- occViewerCanvas.height = aSizeY * aDevicePixelRatio;\r
-\r
- occlogo.style.top = (aSizeY - 30) + "px";\r
-}\r
-window.onresize = updateCanvasSize;\r
-updateCanvasSize();\r
-\r
-//! Check browser support.\r
-function isWasmSupported()\r
-{\r
- try {\r
- if (typeof WebAssembly === "object"\r
- && typeof WebAssembly.instantiate === "function") {\r
- const aDummyModule = new WebAssembly.Module (Uint8Array.of (0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00));\r
- if (aDummyModule instanceof WebAssembly.Module)\r
- {\r
- return new WebAssembly.Instance(aDummyModule) instanceof WebAssembly.Instance;\r
- }\r
- }\r
- } catch (e) {}\r
- return false;\r
-}\r
-if (!isWasmSupported())\r
-{\r
- var anElement = document.getElementById('output');\r
- anElement.innerHTML += "Browser is too old - WebAssembly support is missing!<br>Please check updates or install a modern browser.<br>";\r
-}\r
-\r
-//! Handle file uploading.\r
-fileInput.onchange = function()\r
-{\r
- if (fileInput.files.length == 0) { return; }\r
- // Warning! Entire file is pre-loaded into memory.\r
- var aFile = fileInput.files[0];\r
- var aReader = new FileReader();\r
- aReader.onload = function()\r
- {\r
- var aDataArray = new Uint8Array (aReader.result);\r
- const aDataBuffer = OccViewerModule._malloc (aDataArray.length);\r
- OccViewerModule.HEAPU8.set (aDataArray, aDataBuffer);\r
- OccViewerModule.openFromMemory (aFile.name, aDataBuffer, aDataArray.length, true);\r
- //OccViewerModule._free (aDataBuffer); will be freed by called method\r
- OccViewerModule.displayGround (true);\r
- };\r
- aReader.readAsArrayBuffer(aFile);\r
-};\r
-</script>\r
-<script type="text/javascript" src="occt-webgl-sample.js" charset="utf-8"></script>\r
-</body>\r
-</html>\r
+<!DOCTYPE html>
+<html lang=en-us>
+<head>
+<meta charset=utf-8><meta content="text/html; charset=utf-8" http-equiv=Content-Type>
+<link rel="shortcut icon" href="lamp.ico" type="image/x-icon" />
+<title>OCCT WebGL Viewer Sample</title>
+</head>
+<body>
+
+<h2>OCCT WebGL Viewer Sample</h2>
+<div>
+ <canvas id=occViewerCanvas oncontextmenu=event.preventDefault() tabindex=-1 style="border:0 none;background-color:#000" width="409" height="409"></canvas>
+ <img id=occlogo src="OCC_logo.png" style="position: absolute; left: 20px; top: 0px; z-index: 2;" />
+</div>
+
+<div>
+ <label for="fileInput">Choose BREP file to upload: </label><input type="file" id="fileInput" accept=".brep">
+ <input type="button" value="Clear All" onclick="OccViewerModule.removeAllObjects()">
+ <input type="button" value="Fit All" onclick="OccViewerModule.fitAllObjects(true)">
+</div>
+<h4>Console output:</h4>
+<p id="output"></p>
+<script>
+//! Resize canvas to fit into window.
+function updateCanvasSize()
+{
+ // size of canvas in logical (density-independent) units
+ var aSizeX = Math.min (window.innerWidth, window.screen.availWidth);
+ var aSizeY = Math.min (window.innerHeight, window.screen.availHeight);
+ aSizeX = Math.max (300, aSizeX - 30);
+ aSizeY = Math.max (300, aSizeY / 2);
+ occViewerCanvas.style.width = aSizeX + "px";
+ occViewerCanvas.style.height = aSizeY + "px";
+
+ // drawing buffer size (aka backing store)
+ var aDevicePixelRatio = window.devicePixelRatio || 1;
+ occViewerCanvas.width = aSizeX * aDevicePixelRatio;
+ occViewerCanvas.height = aSizeY * aDevicePixelRatio;
+
+ occlogo.style.top = (aSizeY - 30) + "px";
+}
+window.onresize = updateCanvasSize;
+updateCanvasSize();
+
+//! Check browser support.
+function isWasmSupported()
+{
+ try {
+ if (typeof WebAssembly === "object"
+ && typeof WebAssembly.instantiate === "function") {
+ const aDummyModule = new WebAssembly.Module (Uint8Array.of (0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00));
+ if (aDummyModule instanceof WebAssembly.Module)
+ {
+ return new WebAssembly.Instance(aDummyModule) instanceof WebAssembly.Instance;
+ }
+ }
+ } catch (e) {}
+ return false;
+}
+if (!isWasmSupported())
+{
+ var anElement = document.getElementById('output');
+ anElement.innerHTML += "Browser is too old - WebAssembly support is missing!<br>Please check updates or install a modern browser.<br>";
+}
+
+//! Handle file uploading.
+fileInput.onchange = function()
+{
+ if (fileInput.files.length == 0) { return; }
+ // Warning! Entire file is pre-loaded into memory.
+ var aFile = fileInput.files[0];
+ var aReader = new FileReader();
+ aReader.onload = function()
+ {
+ var aDataArray = new Uint8Array (aReader.result);
+ const aDataBuffer = OccViewerModule._malloc (aDataArray.length);
+ OccViewerModule.HEAPU8.set (aDataArray, aDataBuffer);
+ OccViewerModule.openFromMemory (aFile.name, aDataBuffer, aDataArray.length, true);
+ //OccViewerModule._free (aDataBuffer); will be freed by called method
+ OccViewerModule.displayGround (true);
+ };
+ aReader.readAsArrayBuffer(aFile);
+};
+</script>
+<script type="text/javascript" src="occt-webgl-sample.js" charset="utf-8"></script>
+</body>
+</html>
-var OccViewerModule =\r
-{\r
- print: (function() {\r
- var anElement = document.getElementById('output');\r
- return function(theText) { anElement.innerHTML += theText + "<br>"; };\r
- })(),\r
- printErr: function(theText) {\r
- //var anElement = document.getElementById('output');\r
- //anElement.innerHTML += theText + "<br>";\r
- console.warn(theText);\r
- },\r
- canvas: (function() {\r
- var aCanvas = document.getElementById('occViewerCanvas');\r
- var aGlCtx = aCanvas.getContext ('webgl2', { alpha: false, depth: true, antialias: false, preserveDrawingBuffer: true } );\r
- if (aGlCtx == null) { aGlCtx = aCanvas.getContext ('webgl', { alpha: false, depth: true, antialias: false, preserveDrawingBuffer: true } ); }\r
- return aCanvas;\r
- })(),\r
-\r
- onRuntimeInitialized: function() {\r
- //console.log(" @@ onRuntimeInitialized()" + Object.getOwnPropertyNames(OccViewerModule));\r
- }\r
-};\r
-\r
-const OccViewerModuleInitialized = createOccViewerModule(OccViewerModule);\r
-OccViewerModuleInitialized.then(function(Module) {\r
- //OccViewerModule.setCubemapBackground ("cubemap.jpg");\r
- OccViewerModule.openFromUrl ("ball", "samples/Ball.brep");\r
-});\r
+var OccViewerModule =
+{
+ print: (function() {
+ var anElement = document.getElementById('output');
+ return function(theText) { anElement.innerHTML += theText + "<br>"; };
+ })(),
+ printErr: function(theText) {
+ //var anElement = document.getElementById('output');
+ //anElement.innerHTML += theText + "<br>";
+ console.warn(theText);
+ },
+ canvas: (function() {
+ var aCanvas = document.getElementById('occViewerCanvas');
+ var aGlCtx = aCanvas.getContext ('webgl2', { alpha: false, depth: true, antialias: false, preserveDrawingBuffer: true } );
+ if (aGlCtx == null) { aGlCtx = aCanvas.getContext ('webgl', { alpha: false, depth: true, antialias: false, preserveDrawingBuffer: true } ); }
+ return aCanvas;
+ })(),
+
+ onRuntimeInitialized: function() {
+ //console.log(" @@ onRuntimeInitialized()" + Object.getOwnPropertyNames(OccViewerModule));
+ }
+};
+
+const OccViewerModuleInitialized = createOccViewerModule(OccViewerModule);
+OccViewerModuleInitialized.then(function(Module) {
+ //OccViewerModule.setCubemapBackground ("cubemap.jpg");
+ OccViewerModule.openFromUrl ("ball", "samples/Ball.brep");
+});
project(DRAWEXE)
+unset (CUSTOM_EXTERNLIB)
+if (NOT BUILD_SHARED_LIBS)
+ # link specific list of plugins explicitly
+ FILE_TO_LIST ("src/${PROJECT_NAME}/EXTERNLIB_STATIC" CUSTOM_EXTERNLIB)
+ if (USE_OPENGL)
+ list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGles)
+ list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGlesTest)
+ list (REMOVE_ITEM CUSTOM_EXTERNLIB CSF_OpenGlesLibs)
+ elseif(USE_GLES2)
+ list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGl)
+ list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGlTest)
+ list (REMOVE_ITEM CUSTOM_EXTERNLIB CSF_OpenGlLibs)
+ else()
+ list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGles)
+ list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGlesTest)
+ list (REMOVE_ITEM CUSTOM_EXTERNLIB CSF_OpenGlesLibs)
+ list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGl)
+ list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGlTest)
+ list (REMOVE_ITEM CUSTOM_EXTERNLIB CSF_OpenGlLibs)
+ endif()
+endif()
+
set (EXECUTABLE_PROJECT ON)
OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
unset (EXECUTABLE_PROJECT)
+unset (CUSTOM_EXTERNLIB)
+
+if (EMSCRIPTEN)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s WASM=1")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s MAX_WEBGL_VERSION=2")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s ALLOW_MEMORY_GROWTH=1")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --bind")
+
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s MODULARIZE=1")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s EXPORT_NAME='createDRAWEXE'")
+
+ 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}")
+endif()
#include <Draw.hxx>
#include <DBRep.hxx>
#include <DrawTrSurf.hxx>
+#include <Message.hxx>
+#include <Message_PrinterSystemLog.hxx>
+
+#ifdef OCCT_NO_PLUGINS
+ #include <BOPTest.hxx>
+ #include <DPrsStd.hxx>
+ #if defined(HAVE_OPENGL) || defined(HAVE_GLES2)
+ #include <OpenGlTest.hxx>
+ #endif
+ #include <TObjDRAW.hxx>
+ #include <ViewerTest.hxx>
+ #include <XSDRAWSTLVRML.hxx>
+ #include <XDEDRAW.hxx>
+#endif
//=======================================================================
//function : Draw_InitAppli
void Draw_InitAppli (Draw_Interpretor& di)
{
+#if defined(__EMSCRIPTEN__)
+ // open JavaScript console within the Browser to see this output
+ Handle(Message_PrinterSystemLog) aJSConsolePrinter = new Message_PrinterSystemLog ("DRAWEXE");
+ Message::DefaultMessenger()->AddPrinter (aJSConsolePrinter);
+#endif
+
Draw::Commands (di);
DBRep::BasicCommands (di);
DrawTrSurf::BasicCommands (di);
+
+#ifdef OCCT_NO_PLUGINS
+ // load a couple of plugins
+ BOPTest::Factory (di);
+ DPrsStd::Factory (di);
+ XSDRAWSTLVRML::Factory (di);
+ XDEDRAW::Factory (di);
+ #if defined(HAVE_OPENGL) || defined(HAVE_GLES2)
+ ViewerTest::Factory (di);
+ OpenGlTest::Factory (di);
+ #endif
+ //TObjDRAW::Factory (di);
+ //QADraw::Factory (di);
+#endif
}
#include <Draw_Main.hxx>
--- /dev/null
+<!DOCTYPE html>
+<html lang=en-us>
+<head>
+<meta charset=utf-8><meta content="text/html; charset=utf-8" http-equiv=Content-Type>
+<link rel="shortcut icon" href="lamp.ico" type="image/x-icon" />
+<title>OCCT Draw Harness</title>
+</head>
+<body>
+
+<h2>OCCT Draw Harness</h2>
+<div>
+ <canvas id=occViewerCanvas oncontextmenu=event.preventDefault() tabindex=-1 style="border:0 none;background-color:#000" width="409" height="409"></canvas>
+</div>
+<h4>Output (open JavaScript console):</h4>
+<p id="output"></p>
+<script type="text/javascript" src="DRAWEXE.js" charset="utf-8"></script>
+<script>
+//! Check browser support.
+function isWasmSupported()
+{
+ try {
+ if (typeof WebAssembly === "object"
+ && typeof WebAssembly.instantiate === "function") {
+ const aDummyModule = new WebAssembly.Module (Uint8Array.of (0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00));
+ if (aDummyModule instanceof WebAssembly.Module)
+ {
+ return new WebAssembly.Instance(aDummyModule) instanceof WebAssembly.Instance;
+ }
+ }
+ } catch (e) {}
+ return false;
+}
+if (!isWasmSupported())
+{
+ var anElement = document.getElementById('output');
+ anElement.innerHTML += "Browser is too old - WebAssembly support is missing!<br>Please check updates or install a modern browser.<br>";
+}
+
+var DRAWEXE =
+{
+ print: (function() {
+ var anElement = document.getElementById('output');
+ //return function(theText) { anElement.innerHTML += theText + "<br>"; };
+ return function(theText) { console.warn(theText); };
+ })(),
+ printErr: function(theText) {
+ //var anElement = document.getElementById('output');
+ //anElement.innerHTML += theText + "<br>";
+ console.warn(theText);
+ },
+ canvas: (function() {
+ var aCanvas = document.getElementById('occViewerCanvas');
+ return aCanvas;
+ })(),
+
+ onRuntimeInitialized: function() {
+ //
+ }
+};
+
+const DRAWEXEInitialized = createDRAWEXE(DRAWEXE);
+DRAWEXEInitialized.then(function(Module) {
+ //DRAWEXE.eval("dversion");
+});
+
+</script>
+</body>
+</html>
--- /dev/null
+TKTopTest
+TKDCAF
+TKXSDRAW
+TKXDEDRAW
+TKOpenGlTest
+TKOpenGlesTest
+TKViewerTest
+TKDraw
+TKMeshVS
+TKXDESTEP
+TKSTEP
+TKSTEPAttr
+TKSTEP209
+TKSTEPBase
+TKXDEIGES
+TKIGES
+TKXSBase
+TKVRML
+TKSTL
+TKRWMesh
+TKBinXCAF
+TKXmlXCAF
+TKBin
+TKXml
+TKXmlL
+TKBinL
+TKOpenGl
+TKOpenGles
+TKXCAF
+TKVCAF
+TKStd
+TKCAF
+TKV3d
+TKHLR
+TKMesh
+TKService
+TKOffset
+TKFillet
+TKFeat
+TKBool
+TKBO
+TKShHealing
+TKPrim
+TKTopAlgo
+TKGeomAlgo
+TKBRep
+TKGeomBase
+TKG3d
+TKG2d
+TKMath
+TKStdL
+TKLCAF
+TKCDF
+TKernel
+CSF_TclLibs
+CSF_OpenVR
+CSF_OpenGlLibs
+CSF_OpenGlesLibs
+CSF_FFmpeg
+CSF_FreeImagePlus
+CSF_FREETYPE
+CSF_user32
+CSF_advapi32
+CSF_XwLibs
+CSF_dpsLibs
+CSF_XmuLibs
+CSF_fontconfig
+CSF_objc
+CSF_Appkit
+CSF_IOKit
+CSF_winmm
+CSF_ThreadLibs
+CSF_wsock32
+CSF_psapi
+CSF_androidlog
#else
di << "Architecture: ARM 32-bit\n";
#endif
+#elif defined(__EMSCRIPTEN__)
+ #if defined(__LP64__)
+ di << "Architecture: WASM 64-bit\n";
+ #else
+ di << "Architecture: WASM 32-bit\n";
+ #endif
#else
di << "Architecture: unrecognized\n";
#endif
#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__)
#include <sys/param.h>
di << "OS: BSD (BSD = " << BSD << ")\n";
+#elif defined(__EMSCRIPTEN__)
+ di << "OS: WebAssembly (Emscripten SDK " << __EMSCRIPTEN_major__ << "." << __EMSCRIPTEN_minor__ << "." << __EMSCRIPTEN_tiny__ << ")\n";
#else
di << "OS: unrecognized\n";
#endif
#ifndef _Draw_PluginMacro_HeaderFile
#define _Draw_PluginMacro_HeaderFile
+#ifdef OCCT_NO_PLUGINS
+#define DPLUGIN(name)
+#else
#define DPLUGIN(name) \
-extern "C" {Standard_EXPORT void PLUGINFACTORY(Draw_Interpretor&);} \
-void PLUGINFACTORY(Draw_Interpretor& theDI) { \
- name::Factory(theDI);} \
-\
+extern "C" Standard_EXPORT void PLUGINFACTORY(Draw_Interpretor& theDI) { \
+ name::Factory(theDI); \
+}
+#endif
#endif
# Alternatively, this file may be used under the terms of Open CASCADE
# commercial license or contractual agreement.
-;#
-;# Liste des toolkits WOK sous forme de full path
-;#
+;# Return list of toolkits
proc Draw:toolkits { } {
set aResult [list TKDraw TKTopTest TKViewerTest TKXSDRAW TKDCAF TKXDEDRAW TKTObjDRAW TKQADraw]
return $aResult
}
-;#
;# Autres UDs a prendre. Listes de triplets
;# { ar typ UD str } Tous les types de UD vont dans un sous directory nomme root/str
;# Ils seront dans CAS3.0/str de l'archive de type ar (source/runtime)
;# { ar typ UD {} } Tous les types de UD vont dans root/UD/src => CAS3.0/src
-;#
proc Draw:ressources { } {
- return [list \
- [list both r DrawResources {}] \
- [list both x DRAWEXE {}] \
- ]
-}
-proc Draw:freefiles { } {
- return {}
-}
-;#
-;# Nom du module
-;#
-proc Draw:name { } {
- return Draw
-}
-proc Draw:alias { } {
- return DRAW
-}
-proc Draw:depends { } {
- return [list DataExchange]
+ return [list \
+ [list both r DrawResources {}] \
+ [list both x DRAWEXE {}] \
+ ]
}
-proc Draw:acdepends { } {
- return [list TCLTK]
-}
+proc Draw:freefiles { } { return {} }
+
+proc Draw:name { } { return Draw }
+proc Draw:alias { } { return DRAW }
+proc Draw:depends { } { return [list DataExchange] }
+proc Draw:acdepends { } { return [list TCLTK] }
-;#
;# Returns a list of exported features.
-;#
-proc Draw:Export { } {
- return [list source runtime wokadm api]
-}
+proc Draw:Export { } { return [list source runtime wokadm api] }