-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
75 lines (65 loc) · 1.81 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
cmake_minimum_required(VERSION 3.30.0)
project("libocct-wasm")
set(CMAKE_CXX_STANDARD 17)
cmake_policy(SET CMP0177 NEW)
set(INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/libocct-wasm")
set(OCCT_TARGET_NAME occt-wasm)
set(OCCT_TOOLKITS
TKBool
TKBO
TKBRep
TKFeat
TKFillet
TKGeomAlgo
TKGeomBase
TKG2d
TKG3d
TKHLR
TKMath
TKMesh
TKOffset
TKPrim
TKShHealing
TKTopAlgo
TKernel
)
set(OCCT_PACKAGES)
foreach(TOOLKIT ${OCCT_TOOLKITS})
file(STRINGS build/occt/src/${TOOLKIT}/PACKAGES PACKAGES)
list(APPEND OCCT_PACKAGES ${PACKAGES})
endforeach()
list(REMOVE_DUPLICATES OCCT_PACKAGES)
set(OCCT_SRC_GLOB)
set(OCCT_INCLUDE)
set(OCCT_INCLUDE_GLOB)
foreach(PACKAGE ${OCCT_PACKAGES})
if(NOT PACKAGE STREQUAL "")
list(APPEND OCCT_SRC_GLOB build/occt/src/${PACKAGE}/*.cxx)
list(APPEND OCCT_INCLUDE_GLOB build/occt/src/${PACKAGE}/*.hxx)
list(APPEND OCCT_INCLUDE_GLOB build/occt/src/${PACKAGE}/*.lxx)
list(APPEND OCCT_INCLUDE build/occt/src/${PACKAGE})
endif()
endforeach()
set(OCCT_FOLDERS
Standard
)
foreach(FOLDER ${OCCT_FOLDERS})
list(APPEND OCCT_SRC_GLOB build/occt/src/${FOLDER}/*.cxx)
list(APPEND OCCT_INCLUDE_GLOB build/occt/src/${FOLDER}/*.hxx)
list(APPEND OCCT_INCLUDE_GLOB build/occt/src/${FOLDER}/*.lxx)
list(APPEND OCCT_INCLUDE build/occt/src/${FOLDER})
endforeach()
file(GLOB OCCT_SRC ${OCCT_SRC_GLOB})
file(GLOB OCCT_INCLUDE_FILES ${OCCT_INCLUDE_GLOB})
if(${CMAKE_SYSTEM_NAME} STREQUAL "Emscripten")
add_library(${OCCT_TARGET_NAME} STATIC ${OCCT_SRC})
target_include_directories(${OCCT_TARGET_NAME} PUBLIC ${OCCT_INCLUDE})
target_compile_options(${OCCT_TARGET_NAME} PUBLIC
-DOCCT_NO_PLUGINS
-fexceptions
-flto
-O3
)
install(TARGETS ${OCCT_TARGET_NAME} DESTINATION ${INSTALL_PREFIX})
install(FILES ${OCCT_INCLUDE_FILES} DESTINATION ${INSTALL_PREFIX}/include)
endif()