3 unset (CUSTOM_EXTERNLIB)
4 if (NOT BUILD_SHARED_LIBS)
5 # link specific list of plugins explicitly
6 FILE_TO_LIST ("src/${PROJECT_NAME}/EXTERNLIB_STATIC" CUSTOM_EXTERNLIB)
8 list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGles)
9 list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGlesTest)
10 list (REMOVE_ITEM CUSTOM_EXTERNLIB CSF_OpenGlesLibs)
12 list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGl)
13 list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGlTest)
14 list (REMOVE_ITEM CUSTOM_EXTERNLIB CSF_OpenGlLibs)
16 list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGles)
17 list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGlesTest)
18 list (REMOVE_ITEM CUSTOM_EXTERNLIB CSF_OpenGlesLibs)
19 list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGl)
20 list (REMOVE_ITEM CUSTOM_EXTERNLIB TKOpenGlTest)
21 list (REMOVE_ITEM CUSTOM_EXTERNLIB CSF_OpenGlLibs)
25 set (EXECUTABLE_PROJECT ON)
26 OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit)
27 unset (EXECUTABLE_PROJECT)
28 unset (CUSTOM_EXTERNLIB)
31 # Look for Tcl version string from file tcl.h
32 set (TCL_MAJOR_VERSION 8)
33 set (TCL_MINOR_VERSION 0)
34 set (TCL_RELEASE_SERIAL 0)
35 set (TCL_VERSION_FILE "${3RDPARTY_TCL_INCLUDE_DIR}/tcl.h")
36 if (EXISTS "${TCL_VERSION_FILE}")
37 file(READ "${TCL_VERSION_FILE}" aTclHeader)
38 foreach (SOUGHT_VERSION TCL_MAJOR_VERSION TCL_MINOR_VERSION TCL_RELEASE_SERIAL)
39 string(REGEX MATCH "#define ${SOUGHT_VERSION} * [0-9]+" macrodef "${aTclHeader}")
40 string(REGEX MATCH "[0-9]+" ${SOUGHT_VERSION} "${macrodef}")
43 #message(STATUS "Tcl version: ${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}.${TCL_RELEASE_SERIAL}")
45 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --bind")
47 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s WASM=1")
48 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s MAX_WEBGL_VERSION=2")
49 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s MODULARIZE=1")
50 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s EXPORT_NAME='createDRAWEXE'")
51 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s ALLOW_MEMORY_GROWTH=1")
52 #set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s TOTAL_MEMORY=512MB")
53 if (EMSCRIPTEN_VERSION VERSION_GREATER_EQUAL "2.0.18")
54 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s \"EXPORTED_RUNTIME_METHODS=['FS']\"")
56 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s \"EXTRA_EXPORTED_RUNTIME_METHODS=['FS']\"")
59 # Embed Draw Harness .tcl scripts at recognizable location.
60 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --preload-file ${CMAKE_CURRENT_SOURCE_DIR}/../DrawResources@/DrawResources")
61 # Tcl will look for "init.tcl" at path "$tcl_library/init.tcl" on startup (configurable from environment variable TCL_LIBRARY)
62 # In case of WebAssembly build $tcl_library looks like "tcl8.6.11/library" by default.
63 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")
65 install(FILES ${PROJECT_NAME}.html DESTINATION "${INSTALL_DIR_BIN}/${OCCT_INSTALL_BIN_LETTER}")
66 install(FILES ../DrawResources/lamp.ico DESTINATION "${INSTALL_DIR_BIN}/${OCCT_INSTALL_BIN_LETTER}")
67 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}")