diff --git a/.gitattributes b/.gitattributes index ee61c69baf..e3a283a2ca 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,6 +1,8 @@ .gitattributes eol=lf .gitignore eol=lf *.txt eol=lf +*.htm eol=lf +*.html eol=lf *.h eol=lf *.c eol=lf *.inl eol=lf @@ -29,6 +31,7 @@ *.xib eol=lf *.plist eol=lf *.java eol=lf +*.js eol=lf *.igs eol=lf *.iges eol=lf *.stp eol=lf @@ -44,6 +47,7 @@ FILES eol=lf PACKAGES eol=lf EXTERNLIB eol=lf +EXTERNLIB_STATIC eol=lf UDLIST eol=lf tests/* eol=lf tests/*/* eol=lf diff --git a/CMakeLists.txt b/CMakeLists.txt index 6a5ab483d9..7eee96bc4c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -447,12 +447,6 @@ foreach (OCCT_MODULE ${OCCT_MODULES}) 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) diff --git a/adm/cmake/occt_csf.cmake b/adm/cmake/occt_csf.cmake index 0938850c69..e1b7b92798 100644 --- a/adm/cmake/occt_csf.cmake +++ b/adm/cmake/occt_csf.cmake @@ -118,6 +118,10 @@ else() 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") diff --git a/adm/cmake/occt_toolkit.cmake b/adm/cmake/occt_toolkit.cmake index acbaac55ec..8f09fbeef4 100644 --- a/adm/cmake/occt_toolkit.cmake +++ b/adm/cmake/occt_toolkit.cmake @@ -22,7 +22,7 @@ if ("${OCCT_TOOLKITS_NAME_SUFFIX}" STREQUAL "") 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}) @@ -39,7 +39,7 @@ set (PRECOMPILED_DEFS) 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() @@ -228,6 +228,10 @@ if (EXECUTABLE_PROJECT) 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}) @@ -283,8 +287,12 @@ endif() 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) @@ -383,7 +391,7 @@ else() 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() diff --git a/adm/cmake/tcl.cmake b/adm/cmake/tcl.cmake index 77359a6204..fdfc3e42c6 100644 --- a/adm/cmake/tcl.cmake +++ b/adm/cmake/tcl.cmake @@ -1,6 +1,6 @@ # 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() @@ -14,30 +14,30 @@ if (NOT DEFINED 3RDPARTY_TCL_INCLUDE_DIR) 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) @@ -64,204 +64,198 @@ if (NOT 3RDPARTY_TCL_INCLUDE_DIR) 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) - 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) + 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) - - - 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() - 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}") - - 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() - - 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}" +# 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) - if (NOT 3RDPARTY_TCL_DLL OR NOT EXISTS "${3RDPARTY_TCL_DLL}") - set (3RDPARTY_TCL_DLL "" CACHE FILEPATH "TCL shared library" FORCE) - endif() - 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) - endif() + # 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() - # 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_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() - 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) +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() +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 (NOT 3RDPARTY_TCL_DLL OR NOT EXISTS "${3RDPARTY_TCL_DLL}") + set (3RDPARTY_TCL_DLL "" CACHE FILEPATH "TCL shared library" FORCE) + endif() + 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) + 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}") +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_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}") + # 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() - list (APPEND 3RDPARTY_NO_DLLS 3RDPARTY_TCL_DLL_DIR) + 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() - 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) - # 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() - 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() - endif() - - 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() - 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() - - 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}) + 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() - set (USED_3RDPARTY_TCL_DIR ${3RDPARTY_TCL_LIBRARY_DIR}) + 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() - mark_as_advanced (3RDPARTY_TCL_LIBRARY 3RDPARTY_TCL_DLL) + 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() + 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() + + 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) @@ -285,10 +279,3 @@ OCCT_CHECK_AND_UNSET (TK_LIBRARY) 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() diff --git a/adm/scripts/cmake_gen.bat b/adm/scripts/cmake_gen.bat index 0a0ac0dff5..428107902b 100644 --- a/adm/scripts/cmake_gen.bat +++ b/adm/scripts/cmake_gen.bat @@ -12,6 +12,7 @@ set VS=14 set VSDATA=2015 set VSPLATFORM=Win64 set "BUILD_DIR=build-vs%VS%-%VSPLATFORM%" +set "OCCT3RDPARTY=" set "INSTALL_DIR=%SrcRoot%\install" set BUILD_ADDITIONAL_TOOLKITS= diff --git a/adm/scripts/wasm_build.bat b/adm/scripts/wasm_build.bat index af9bfcd14c..1284cb7f76 100644 --- a/adm/scripts/wasm_build.bat +++ b/adm/scripts/wasm_build.bat @@ -173,6 +173,7 @@ if ["%toCMake%"] == ["1"] ( -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 ( diff --git a/samples/webgl/occt-webgl-sample.html b/samples/webgl/occt-webgl-sample.html index c04add8b47..a831e3e1f0 100644 --- a/samples/webgl/occt-webgl-sample.html +++ b/samples/webgl/occt-webgl-sample.html @@ -1,87 +1,87 @@ - - -
- - -